WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。
来吧!一起学起来!
- WPF入门到放弃(一) | 安装与创建
- WPF入门到放弃(二) | 初识XAML
- WPF入门到放弃(三)| 制作串口调试助手
- WPF入门到放弃(四)| 给串口调试助手列表赋值(附调试软件)
- WPF入门到放弃(五)| 串口的读取与写入(程序&附串口调试精灵)
说明:
本文主要介绍WPF(Windows Presentation Foundation),是微软推出的一项基于windows操作系统、.NET平台的C/S客户端构建技术。
软件下载地址:
https://visualstudio.microsoft.com/zh-hans/vs/
这里使用的是Visual Studio 2019 社区版
提示:
文章附源程序下载地址的获取,
请关注“剑指工控“微信公众号后,
添加管理员,
加入剑指工控微信群后获取。
第6讲
画面优化与发布
当我们需要修改同一类型的多个控件时,比如我们做的串口调试助手用的Label和ComboBox,这就需要给这些控件写个样式来达到批量修改的目的。
通常我们设置样式的有效范围是当前整个窗体,我们用Window.Resources中来设置它的有效范围是当前窗体
- Style 主要设置Setter和Trigger这两种元素
- Setter 主要设置控件的静态的风格比如控件的高度,大小等
- Trigger 主要满足某个条件触发某些行为
- TargetType 目标类型是需要设置的,Label说明设置的是一个标签
- ComboBox 说明我们设置的是一个下拉列表,
- Property 属性用来说明是为那个属性赋值,Value是具体的属性值
这样可以使用多个Setter来设置多个属性。
这样 Label和ComboBox就会有统一的风格,当然可以使用Style="{x:Null}"来不用这个Style
这是其中的一种用法,当然很多时候我们页面控件比较多的时候,我们只想影响指定的控件对象而不是所有的控件对象应该怎么办呢?
我们为Style添加一个x:Key="xxx"
同时在相应的控件里面 Style="{StaticResource xxx}"
然后看着lable标签的字体有点大,我们把FontSize=“30”放到样式里面修改,同时调整上下左右的边距。
在定时器中加入如下代码
代码语言:javascript复制if (SerialCom.OpenState){
Open.Content = "关闭串口";
Open.Background = new SolidColorBrush(Color.FromRgb(0, 255, 0)); }
如果串口打开的,则按钮的内容是关闭串口,同时按钮的背景色是绿色。
else {
Open.Content = "打开串口";
Open.Background = new SolidColorBrush(Color.FromRgb(128, 128, 128)); }
如果串口是关闭的,则按钮的内容是打开串口,同时按钮的背景色是灰色。
运行后效果显示如下:
并没有出现我们想要的效果,只有当鼠标移开的时候才是我们预设的效果,点击其它按钮发现也是出现蓝色,原来是WPF 里按钮的的默认样式,那么如何去掉这个默认样式呢,只能重写这个控件的样式了。
重新样式如下:
- <Setter Property="OverridesDefaultStyle" Value="True"/>重写默认样式。
- Background="{TemplateBinding Background}" 让Border的Background与模版的目标控件保持一致,这样为模版的目标控件改变属性时,Border的Background也会跟着变化。
- <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> ContentPresenter 是用来显示内容属性的。
下面为按钮绑定写好的样式。
将接收的文本框背景写成黑色,前景改成白色。
简单优化效果如下,如需要进一步优化的可以联系管理员获取源码。
当我们在不同平台去运行我们的代码时,可能需要安装相应的环境才能去运行,.net5可以将相应的工程
部署模式选择独立
这里选择64位系统,虽然支持发布一些其他系统,但是WPF只能运运行在windows系统。点击保存
点击发布,很快就发布完成了。通过测试在win7,windows server2016都能运行,如果win7不能运行,需要安装Windows6.1-KB3063858-x64这个更新
第一个小项目就这样完成了,接下来主要会介绍一下常用的一些控件的用法以及excel的读取写入,数据库的读取写入。这个是我的一个学习方式,边实战边学习,通过实战去掌握这些控件的用法,而不是直接去学完整个控件,再去实战。希望和大家一同进步。