WPF 使用DMSkin for WPF 快速搭建漂亮的WPF程序
DMSkin-for-WPF是一个基于WPF的.Net WPF开源界面库,实现了无边框的WPF开发方案,内置部分控件模板. 你可以参照模板自行修改完善。(以下简称DFW)。
核心
DFW实现了比较完美的无边框窗体方案,并且拖拽全部采用WIN32消息实现。拖拽依靠桌面边缘完美,高DPI支持,窗体不会变形或异常
另外,由于我对MVVM不擅长,所以DEMO并不是采用MVVM框架。
版本更新
2.0.0.1 (2018-01-30)
1.新增一个窗口Demo。
2.0.0.0 (2017-10-15)
1.移除WindowMode。
2.目前WIN7有点小瑕疵。
3.0 (2017-9-21)
1.WIN7以及以下采用单层。
2.WIN8、WIN10采用双层。
2.4 (2017-9-21)
1.窗口边缘拉伸(右,右下,下)。
2.阴影恢复速度调为200ms
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
WPF 使用DMSkin for WPF 快速搭建漂亮的WPF程序的更多相关文章
- 快速搭建简单的LBS程序——地图服务
很多时候,我们的程序需要提供需要搭建基于位置的服务(LBS),本文这里简单的介绍一下其涉及的一些基本知识. 墨卡托投影 地图本身是一个三维图像,但在电脑上展示时,往往需要将其转换为二维的平面图形,需要 ...
- WPF从入门到放弃系列第一章 初识WPF
什么是WPF WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供 ...
- 基于ASP.NET Core 3.0快速搭建Razor Pages Web应用
前言 虽然说学习新的开发框架是一项巨大的投资,但是作为一个开发人员,不断学习新的技术并快速上手是我们应该掌握的技能,甚至是一个.NET Framework开发人员,学习.NET Core 新框架可以更 ...
- 后续来啦:Winform/WPF中快速搭建日志面板
后续来啦:Winform/WPF中快速搭建日志面板 继昨天发文ASP.NET Core 可视化日志组件使用(阅读文章,查看视频)后,视频下有朋友留言 "Winform客户端的程序能用它不?& ...
- UI-WPF_UI:WPF UI - DMSkin官方网站
ylbtech-UI-WPF_UI:WPF UI - DMSkin官方网站 1.返回顶部 1. QQ: 944095635 DMSkin.com 首页 论坛 定制 博客 联系 DMSkin 3. ...
- [WPF] 考古Expression Web:微软当年最漂亮的WPF软件
1. 什么是Expression Web Expression Studio是微软在2007年推出的一套针对设计师的套件,其中包含专业的设计工具和新技术,可以弹性且自由地将设计方案转为实际--无论设计 ...
- WPF快速入门系列(1)——WPF布局概览
一.引言 关于WPF早在一年前就已经看过<深入浅出WPF>这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中 ...
- WPF案例 (三) 模拟QQ“快速换装"界面
原文:WPF案例 (三) 模拟QQ"快速换装"界面 这个小程序使用Wpf模拟QQ快速换装页面的动画特效,通过使用组合快捷键Ctrl+Left或Ctrl+Right,可实现Image ...
- WPF 使用不安全代码快速从数组转 WriteableBitmap
原文:WPF 使用不安全代码快速从数组转 WriteableBitmap 本文告诉大家一个快速的方法,直接把数组转 WriteableBitmap 先来说下以前的方法,以前使用的是 BitmapSou ...
随机推荐
- 基于Echarts4.0实现旭日图
昨天Echarts4.0正式发布,随着4.0而来的是一系列的更新,挑几个主要的简单说明: 1.展示方面通过增量渲染技术(4.0+)ECharts 能够展现千万级的数据量 2.针对移动端优化,移动端小屏 ...
- python动态类型
在python中,省去了变量声明的过程,在引用变量时,往往一个简单的赋值语句就同时完成了,声明变量类型,变量定义和关联的过程,那么python的变量到底是怎样完成定义的呢? 动态类型 python使用 ...
- C++ 初始化列表(转)
转载自:http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html 何谓初始化列表 与其他函数不同,构造函数除了有名字,参数列表和函 ...
- 从零开始学习前端JAVASCRIPT — 3、JavaScript基础string字符串介绍
1:字符串 JS中的任何数据类型都可以当作对象来看.所以string既是基本数据类型,又是对象. 2:声明字符串 基本数据类型:var sStr = '字符串'; 对象的方法:var oStr = n ...
- robots书写说明:
"User-Agent"搜索引擎的名字. 针对所有搜索引擎写法:User-Agent: *,针对百度搜索引擎写法:User-Agent:Baiduspider "Allo ...
- 基于Vue的小日历(支持按周切换)
基于Vue的日历小功能,可根据实际开发情况按每年.每月.每周.进行切换 <template> <div class="date"> <!-- 年份 ...
- 认识Java(1)
Java是一门程序设计语言. 有三个方向: JAVA SE (java platform standard edition):包含java核心类,如数据库.接口.网络编程. JAVA ME(java ...
- 滑稽的下午--angularjs 2.0管道的使用
虽然angular 已经迎来4.0时代,可我还在苦逼的看2.0. 下午有个任务: 让一个component组件里的时间显示当前时间并自动刷新. 过程: 1.首先获取当前时间 new Date(); 2 ...
- Python3基础知识
1.查看关键字 Python3查看关键字要先导入模块keyword,然后运用keyword的属性kwlist获取 >>> import keyword>>> key ...
- Windows10下用Anaconda3安装TensorFlow教程
这是我在自己的笔记本电脑上用Anaconda3安装TensorFlow的教程 1. 安装好Anaconda3版本 (1) 注:可以发现最新版本是Anaconda5了(没关系,下载就是了) (2) 注意 ...