一、目的:封裝了一些控件到自定義的控件庫中,方便快速開發
二、實現功能:
基本實現常用基礎控件,滿足常規軟件快速開發
同時支持框架.Net Core 3.0 + ,.Net FrameWork 4.5+
三、整體概況
1、登錄頁面:
登錄頁面只需要繼承LoginWindowBase基類,並且設置樣式 Style="{StaticResource S.Window.Login.Default}"即可
2、主頁面:
主頁面只需繼承LinkWindowBase基類,並且設置樣式Style="{DynamicResource S.Window.Link.Default}"即可
整體主窗口採用ViewBox方式加載,當縮放窗口或應用到到其他分辨率設備都會兼容
3、主題配置信息保存
主題配置信息已經封裝在ApplicationBase中,會自動在退出時保存設置好的配置信息(如:主題顏色、字體大小等)
總結:應用此模式可以達到複用的目的,將通用部分封裝到底層,如需修改樣式只需修改Style樣式文件或修改依賴屬性即可滿足功能修改
四、主題設置
淺色主題示例如下:
深色主題示例如下圖:
主題設置功能主要包括:
1、設置主題主顏色
主題顏色主要用來標識要突出顯示的部分,目前可以選擇內置顏色、可以選擇跟隨系統主題顏色、可以自定義選擇顏色、可以使用動態主題(即設置主題每隔指定時間自動變化)
2、設置主題
主題目前實現四中主題,分別是淺色主題、深色主題、灰色主題、主顏色爲主題
3、設置字體大小
字體大小目前內置兩種,分別是Large和Small,其中這兩種顏色採用注入的方式加載,即可以在程序加載時設置着兩種字體的初始值
4、其他配置
包括中英文、設置標準行高等等可以在程序加載時進行初始化設置,這裏不做過多介紹
總結:這樣設計的目的是審美因人而異,使用自定義配置的方式可以儘可能多的滿足多變的需求
五、其他基礎控件
1、數據表格
a、兼容主題字體和主題設置,後面將要提到的所有控件均已應用主題設置,不做再說明
b、每頁顯示條數
可以設置每頁要顯示的條數
c、搜索
可以設置搜索過濾條件,包含指定搜索項的條目纔會顯示
d、頁面跳轉
可以上一頁、下一頁、第一頁、最後一頁、指定頁
e、頁面信息
當前頁屬於數據源的第幾條至第幾條,數據源的總條目數
f、兩種風格的網格頁面
總結:以上功能封裝在控件PagedDataGrid中,只需綁定數據源即可實現以上功能,其中打印、導出等功能暫時沒有實現
2、樹形列表
a、支持按類別篩選
如上圖、選擇指定類型來過濾列表
b、支持按條件搜索
如上圖、輸入條件可以過濾指定條件
總結:使用方式爲綁定數據源到TreeListView控件中
3、其他常用控件
a、對話框
採用內置對話框,不是應用窗口,只是覆蓋層,可以避免窗口對話框引起的一些問題
b、對話窗口自定義對話窗口
相對系統對話窗口更美觀,增加顯示和隱藏效果,通過注入的方式可以自定義按鈕個數和功能
c、消息列表
目前有兩種模式,分別是在窗口內顯示和Window系統中顯示,可以根據需求自定義顯示方式,示例如下
d、在線升級示例如下
e、導航菜單示例如下
f、其他功能包括
按鈕控件、文本輸入框控件、下拉列表控件、數字控件、日期選擇控件、支持綁定的密碼框控件、進度條控件、拖動控件、樹形控件、分頁控件以及其他自定義控件
以上控件均已實現主題顏色、字體大小切換等,可以滿足常用軟件的功能
其中整體結構使用的自定義Mvc方式加載,參考地址:https://blog.csdn.net/u010975589/article/details/100019431
由於控件過多不做詳細介紹,有興趣的可以下載源碼或加載nuget包
六、使用方式
nuget包添加如下圖
說明:此示例部分功能部分代碼參考第三方框架,開源只應用於學習和參考,不做商用目的
應用此框架的其他示例:
七、下載地址
GitHub下載地址:https://github.com/HeBianGu/WPF-ControlBase.git
安裝包示例下載地址:
鏈接:https://pan.baidu.com/s/1y2UfDKIxoSOffj36gl7fOw
提取碼:l2ia
更新:2019.12.16 增加.Net Core 3.0
目前已支持Core3.0 和.net 4.5 如有解決方案程序集無法加載請安裝這兩個框架