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

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

核心

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

另外,因爲我對MVVM不擅長,因此DEMO並非採用MVVM框架。app

版本更新

2.0.0.1 (2018-01-30)

1.新增一個窗口Demo。框架

2.0.0.0 (2017-10-15)

1.移除WindowMode。ide

2.目前WIN7有點小瑕疵。優化

3.0 (2017-9-21)

1.WIN7以及如下采用單層。動畫

2.WIN八、WIN10採用雙層。spa

2.4 (2017-9-21)

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

2.陰影恢復速度調爲200mscomponent

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

相關文章
相關標籤/搜索