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

一个强大的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

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

想学电脑知识可以关注我的公众号[大学生的电脑课],里面没有软件只有教程,SB勿来

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

46 条评论

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

    try try 不错呢

    2021年4月6日 上午1:16 评论
  2. 49楼
    唉唉唉   

    唉唉唉是的撒所大所

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

    博主:下载地址无效咧,能否将源码发一份到邮箱:[email protected] 不胜感激

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

    很好

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

    不错呢

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

发表评论

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

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