WPF 使用DMSkin for WPF 快速搭建漂亮的WPF程序


DMSkin-for-WPF是一個基於WPF的.Net WPF開源界面庫,實現了無邊框的WPF開發方案,內置部分控件模板. 你可以參照模板自行修改完善。(以下簡稱DFW)。

核心

DFW實現了比較完美的無邊框窗體方案,並且拖拽全部采用WIN32消息實現。拖拽依靠桌面邊緣完美,高DPI支持,窗體不會變形或異常

另外,由於我對MVVM不擅長,所以DEMO並不是采用MVVM框架。

版本更新

2.0.0.1 (2018-01-30)

1.新增一個窗口Demo。

2.0.0.0 (2017-10-15)

1.移除WindowMode。

2.目前WIN7有點小瑕疵。

3.0 (2017-9-21)

1.WIN7以及以下采用單層。

2.WIN8、WIN10采用雙層。

2.4 (2017-9-21)

1.窗口邊緣拉伸(右,右下,下)。

2.陰影恢復速度調為200ms

3.陰影可以完全關閉(高效率,配合窗口虛線使用)

2.3 (2017-9-20)

1.修復ALT+TAB 出現2個窗體的BUG。

2.陰影層背景色,拉伸 拖拽時 出現的顏色。選擇跟主窗體 接近的顏色 用戶體驗更好

2.2 (2017-9-20)

1.修復多個窗口無法激活聚焦的BUG。

2.拖動窗口支持顯示陰影層

3.陰影層延遲顯示的BUG修復

2.1 (2017-9-19)

1.優化最小化恢復陰影順序,不會像網易雲音樂一樣出現雙層了。

2.去除窗口裁剪代碼(之前的裁剪操作多此一舉)

3.拖動窗口位置時隱藏陰影提高效率

【2.0版本】采用雙層窗體+Win32實現無邊框,2.0版本不支持圓角窗體,不支持窗體透明,但是擁有完美最小化的動畫。如果采用虛線邊框,則可以去除雙層窗體。

1.0版本】采用WindowStyle.None + 透明實現無邊框,版本缺陷是無邊框通病,窗體最小化 動畫失效了。但是我用xaml實現了動畫(動畫流暢程度取決於顯卡),需要這個版本的源碼請點擊我的頭像進到另外一個1.0項目中獲取

2.0 (2017-9-13)

1.版本升級到2.0,最小化動畫終於解決,此方案可以移植到winform無邊框中,這是我所知道的世界第一例WPF/winfrom無邊框最小化動畫方案。

0.8 (2017-8-26)

1.修復最小化動畫以及恢復動畫(尚可優化)

0.7 (2017-8-25)

 

1.代碼托管到GITHUB

2.新增Demo:周傑倫音樂播放器

3.新增Demo:默認模板窗體

0.6 (2017-3-6)

1.新增DMSystemButtonHoverColor 系統按鈕鼠標懸浮的背景色(圓角窗體請設為透明,效果更好)

2.新增窗體模式:扁平化Metro+陰影Shadow 2種風格窗體

 

 

使用說明

1.引用DMSkin.WPF.DLL
2.Window繼承修改為:MainWindow : DMSkinWindow
3.添加引用:xmlns:DMSkin="clr-namespace:DMSkin.WPF;assembly=DMSkin.WPF"
4.XAML繼承修改為: DMSkin:DMSkinWindow x:Class="DMSkin.WPF.Test.MainWindow"

  

窗體屬性

      
Foreground="White"                    //前景色 
Background="White"                    //背景色 
DMShowMin="True"                      //顯示系統按鈕-最小化
DMShowMax="True"                      //顯示系統按鈕-最大化
DMShowClose="True"                    //顯示系統按鈕-關閉
DMWindowShadowSize="10"               //窗體邊框陰影大小
DMWindowShadowColor="#FFC8C8C8"       //窗體邊框陰影顏色
DMWindowShadowDragVisibility="False"  //窗體拖動時是否顯示陰影層
DMWindowShadowVisibility="False"      //窗體是否有陰影層[關閉陰影層]
DMWindowShadowBackColor="#FF323CAD"   //陰影背景色,選擇跟主窗體相近的顏色 拉伸跟拖動 用戶體驗更好|#FF323CAD 為藍色
DMSystemButtonSize="50"               //系統按鈕大小
DMSystemButtonForeground="#FF666666"  //系統按鈕[文字]顏色
DMSystemButtonHoverColor="#33000000"  //系統按鈕的鼠標懸浮[背景]色
DMSystemButtonHoverForeground="White" //系統按鈕的鼠標懸浮[文字]顏色
DMSystemButtonCloseHoverColor="Red"   //系統【關閉】按鈕的鼠標懸浮[背景]色-默認為紅色
DMSystemButtonShadowEffect="0"        //系統按鈕的陰影大小
ResizeMode="CanResize"                //邊框拉伸方案CanResiz和CanResizeWithGrip
Height="700" Width="1000"             //窗體大小
MinHeight="268" MinWidth="360"        //窗體最大以及最小屬性
WindowStartupLocation="CenterScreen"  //窗體初始位置

DMMetroBorderColor="#FFC8C8C8"  //窗體邊框顏色-僅Metro有效   --2.0中移除
DMMetroBorderSize="1"           //邊框大小-僅Metro有效   --2.0中移除
DMWindow="Shadow"               //Shadow-陰影模式  Metro-線條扁平化模式   --2.0中移除

  

資源引用

<Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/DMSkin.WPF;Component/Themes/DMSkin.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.WPF;Component/Themes/DMColor.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.WPF;Component/Themes/DMScrollViewer.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMButton.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMTabControl.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMRadioButton.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMTreeView.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMDataGrid.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMListBox.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMSlider.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMCheckBox.xaml" />
                <ResourceDictionary Source="pack://application:,,,/DMSkin.Wpf;component/Themes/DMContextMenu.xaml" />
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
</Application.Resources>

  

DMSkin-for-WPF 2.0.0.1

 

 

開源地址:https://github.com/944095635/DMSkin-for-WPF


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM