JZGKCHINA
工控技术分享平台
尊重原创 勿抄袭
勿私放其他平台
WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。
来吧!一起学起来!
说明:
本文主要介绍WPF(Windows Presentation Foundation),是微软推出的一项基于windows操作系统、.NET平台的C/S客户端构建技术。
软件下载地址:
https://visualstudio.microsoft.com/zh-hans/vs/
这里使用的是Visual Studio 2019 社区版
第2讲
初识XAML
XAML是一种基于 XML 的标记语言,以声明形式实现应用程序的外观。通常用它定义窗口、对话框、页面和用户控件,并填充控件、形状和图形。
下面来具体学习一下,上一节结束时建的项目:
上面一段代码是自动生成的,让我们来分解此XAML代码,以便更好地了解它。
下面做一些测试理解上面的内容。
先将x:Class="HelloWord.MainWindow"这段代码去掉,
点击运行程序按钮,运行显示错误。
但在错误列表中,并没有错误提示,说明没有这个x:Class="HelloWord.MainWindow"系统认为也是可以的。
把程序中InitializeComponent();屏蔽掉后程序也是可以正常运行的。因为InitializeComponent();是x:Class="HelloWord.MainWindow" 默认生成的构造函数。
当把先将x:Class="HelloWord.MainWindow"改成x:Class="HelloWord.MyWindow" 会提示InitializeComponent不存在,虽然代码中有这段代码
这时候用ILSpy反编译工具,将HelloWord.dll放到ILSpy反编译看,HelloWord这个名称空间下多了一个MyWindow类,里面默认生成一个InitializeComponent构造函数
提示:
ILSpy反编译工具下载地址的获取,
请关注“剑指工控“微信公众号后,
添加管理员,
加入剑指工控微信群后获取。
而默认的是下面这种:
这时候我们能明白HelloWord.MainWindow.xaml与HelloWord.MainWindow.xaml.cs都有MainWindow这个类通过partial关键字,可以把一个类在多处定义,这样XAML解析生成的类与C#文件中定义的部分就合二为一了,实现UI与逻辑分离。
可以将默认的名称空间前加个前缀,比如n,这样Window与Grid前都需要加相应的前缀,感兴趣的自己测试。
下面我们先建一个按钮:
<Button d:Content="剑指工控" FontSize="50" Margin="100" />
d:Content="剑指工控" 这个只在设计中显示,实际运行并不显示。
下面看一下如何将C#中的类如何在xaml中使用。
先添加一个Students类
使用local:后面出现APP,MainWindow这两个默认的类以及我们新建的Students这个类。
在xaml文件中就可以使用sName了。
这里显示的是类的名称,而不是剑指工控这四个字,显然需要做个转换才行,这个后续有用到时候再讲解。好了这期的xaml的学习就到这里,主要是对命名空间的一些理解。需要反编译工具ILSpy的可以联系管理员获取,以下是WPF按照功能分类的控件,后期会做个串口调试助手实战来学习。
下一期主要讲解串口调试助手中用到的控件。
就这么简单!下周见!
作者简介:
曹言林:加入工控七余载,从事过单片机编程、控制柜接线、设备维修,PLC编程、MES实施,目前主要做MES售前,对各方面虽不是专家级别,也愿为工控圈添砖加瓦,贡献自己的一份力量。