DMSkin.WPF M 是我自己开发WPF用的UI框架,开源到github。(以下简称DFW)。 DFW实现了比较完美的无边框窗体方案,并且拖拽全部采用WIN32消息实现。拖拽依靠桌面边缘完美,高DPI支持,窗体不会变形或异常
另外,由于我对MVVM不擅长,所以DEMO并不是采用MVVM框架。
本源码采用VS2017 个人版 开发,部分C# 6.0+语法 vs2015 vs2013 vs2012 请自行修改源码中不支持的部分。1.此项目正式上线。
加入讨论
官网:http://www.dmskin.com 非常欢迎参与DFW的改进。有钱出钱有力出力,如果你觉得DFW很棒,请支持我。 如果你需要相关的资源或者学习资料也请联系我。
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>
<Grid>
<Grid Background="White">
<Border Grid.Column="0" BorderThickness="0,0,0,2" BorderBrush="{StaticResource LineColor}" VerticalAlignment="Top">
<Grid>
<TextBlock Foreground="{StaticResource MainColor}" Text="DMSkin" FontSize="20"
HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"/>
<Button Name="ButtonSkin"
ToolTip="主题"
Focusable="False"
Style="{DynamicResource CaptionButtonStyle}"
Padding="0" HorizontalContentAlignment="Center" HorizontalAlignment="Right" Margin="0,0,150,0" Width="50" Height="50"
>
<Label Foreground="#FF555555"
Content="X" FontSize="22"
HorizontalContentAlignment="Center" FontWeight="Bold" ></Label>
</Button>
</Grid>
</Border>
</Grid>
<ResizeGrip HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" VerticalAlignment="Bottom" HorizontalAlignment="Right"></ResizeGrip>
</Grid>
<Border Background="White" CornerRadius="5" BorderThickness="1">
<Border.Effect>
<DropShadowEffect BlurRadius="12" ShadowDepth="0" Color="#88000000"/>
</Border.Effect>
<Grid Margin="0,0,0,0">
<Grid Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Name="DMTitle">
</Grid>
</Grid>
<ResizeGrip VerticalContentAlignment="Bottom" HorizontalContentAlignment="Right" HorizontalAlignment="Right" VerticalAlignment="Bottom"></ResizeGrip>
</Grid>
</Border>