当前位置:首页 > 软件下载 > 正文

一个强大的WPF无边框窗体框架和控件库组合 —— DMSkin for WPF

DMSkin-for-WPF (简称 DFW) 是一个强大的WPF无边框窗体框架和控件库组合。支持窗体阴影、窗体过渡动画,自带优雅的控件库,旨在帮助开发者更加高效、迅速地创建出优美的WPF界面。它支持的.NET Framework版本从3.5到4.7,并支持从Windows XP到Window 10的所有系统版本。

DFW为窗体无边框提供了两种方案:

1. 双层方案

使用Win 32 API重绘非客户区,然后创建一个单独的窗体去绘制阴影。

2. 单层方案

延迟Windows消息以防止由于设置窗体属性为AllowsTransparency=true, WindowStyle=None而导致的闪烁花屏Bug。

下面的表格可以很直观地说明双层方案和单层方案的区别:

[table id=1 /]

1. DFW基于VS 2017社区版开发,.NET 4.0开发环境,源码包括一些c# 6.0+语法,如果你在VS 2015甚至更低的VS版本上编译不通过的话,请自行修改中源码不兼容的部分。注意

 

2. 双层方案仍然有点缺陷,在Win7上非客户区的系统按钮会阻挡操作。

DMSkin-for-WPF 官方案例

DMSkin-for-WPF 官方案例

用法 & 配置

1. 创建一个WPF项目

2. 添加 DMSkin.WPF.dll 引用

3. 修改 MainWindow.cs

这里以引入单层方案 DMSkinSimpleWindow 为例,使用双层方案将DMSkinSimpleWindow改成DMComplexWindow即可。

 using DMSkin.WPF; using System.Windows; namespace DMSkinTest { public partial class MainWindow : Window public partial class MainWindow : DMSkinSimpleWindow { public MainWindow() { InitializeComponent(); } } }

4. 修改 MainWindow.xaml

<Window x:Class="DMSkinTest.MainWindow" <DMSkin:DMSkinSimpleWindow x:Class="DMSkinTest.MainWindow" <!-- 这里你需要将 DMSkinTest 换成你自己的项目名 --> xmlns:DMSkin="clr-namespace:DMSkin.WPF;assembly=DMSkin.WPF" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid> </Grid> </Window> </DMSkin:DMSkinSimpleWindow>

若想使用双层方案,需要将上方的DMSkinSimpleWindow改成DMComplexWindow。

5. 添加系统按钮 (可选)

<!-- 将下面的代码添加进 MainWindow.xaml --><!-- 系统按钮属性: -- DMSystemButtonSize // 系统按钮大小 -- DMSystemButtonForeground // 系统按钮前景色 -- DMSystemButtonHoverColor // 光标悬浮在按钮上时系统按钮的背景色 -- DMSystemButtonHoverForeground // 光标悬浮在按钮上时系统按钮的前景色 -- DMSystemButtonCloseHoverColor // 系统关闭按钮的颜色 --><WrapPanel Height="{Binding DMSystemButtonSize}" Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right"> <controls:DMSystemMinButton DMSystemButtonSize="50" DMSystemButtonHoverForeground="#383838" DMSystemButtonForeground="#383838"> </controls:DMSystemMinButton> <controls:DMSystemMaxButton DMSystemButtonSize="50" DMSystemButtonHoverForeground="#FFFFFF" DMSystemButtonForeground="#383838"> </controls:DMSystemMaxButton> <controls:DMSystemCloseButton DMSystemButtonSize="50" DMSystemButtonHoverForeground="#FFFFFF" DMSystemButtonForeground="#383838"> </controls:DMSystemCloseButton></WrapPanel>

6. 配置你的 DFW 窗体属性 (可选)

DMWindowShadowSize="10" // 窗体阴影大小DMWindowShadowColor="#FFC8C8C8" // 窗体阴影颜色DMWindowShadowOpacity="0.8" // 窗体阴影透明度DMWindowShadowDragVisibility="False" // 当窗体被拖动时是否显示阴影DMWindowShadowVisibility="False" // 是否显示窗体阴影DMWindowShadowBackColor="#FF323CAD" // 阴影背景色 (只对双层方案有效)

7.制作圆角窗体 (可选)

<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>

效果预览

更新日志

2.5.0 (2018-06-07)

  1. 将2个项目合二为一。
  2. 添加一些WPF 常用的class 如ViewModelBase,UI调度器,转换器。
  3. 加入了水印输入框等,代码重构,准备发布到Nuget,以后可以通过Nuget安装 和 更新。

下载地址:

温馨提示: 此处内容需要您评论本文并刷新(按F5)才能查看!


通知:博客已出售

粉丝可关注公众号:大学生的电脑课,获取最新动态。博客即将关闭

软件无法下载/安装/其它电脑问题,加企鹅群:709531763

有问题直接群里问,在线的时候有问必答,私聊一般都不看

想学电脑知识可以关注我的公众号

 大学生的电脑课
文章标题:一个强大的WPF无边框窗体框架和控件库组合 —— DMSkin for WPF
本文作者:慕若曦
发表日期:2018-09-14 02:07 星期五    首发于    慕若曦博客
本文固定链接: https://www.muruoxi.com/pc/2974.html
文章标签:
上一篇: 下一篇:

45 条评论

评论加载中...
  1. 50楼
    唉唉唉  

    唉唉唉是的撒所大所

    2020年7月28日 下午5:01 评论
  2. 49楼
    wultxl  

    博主:下载地址无效咧,能否将源码发一份到邮箱:357157160@qq.com 不胜感激

    2020年6月16日 下午4:59 评论
  3. 48楼
    wultxl  

    很好

    2020年6月16日 下午4:56 评论
  4. 47楼
    v.887mysf.com  

    不错呢

    2020年1月5日 下午2:45 评论

发表评论

╮( ̄▽ ̄)╭ | (= ̄ω ̄=) | (>﹏<) | Σ( ° △ °|||)︴ | Σ(っ °Д °;)っ | X﹏X | (╯-_-)╯╧╧

小提示:提交评论后刷新本页面即可看到隐藏的文件哦~
加载中……