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>
開源地址:https://github.com/944095635/DMSkin-for-WPF