WPF入门到放弃(六)| 画面优化与发布(附源程序)

2021-11-08 13:52:36 浏览数 (1)

WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。

来吧!一起学起来!

  1. WPF入门到放弃(一) | 安装与创建
  2. WPF入门到放弃(二) | 初识XAML
  3. WPF入门到放弃(三)| 制作串口调试助手
  4. WPF入门到放弃(四)| 给串口调试助手列表赋值(附调试软件)
  5. 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的读取写入,数据库的读取写入。这个是我的一个学习方式,边实战边学习,通过实战去掌握这些控件的用法,而不是直接去学完整个控件,再去实战。希望和大家一同进步。

0 人点赞