C#学习☞WPF的一个有趣试验
学习C#.net有两三个星期了, 怎奈书本略厚, 工作略繁杂, 于是各种跳章, 好不容易跳到了WPF的章节.
看了<<C#与.NET4高级程序设计>>第27章, 就突然产生了一个想法.
总觉得WPF是在跟网页制作较劲, 网页的HTML标签一行一行加载下来, 如果有一行button加载完了, 下面可以写一个js标签, 显示地执行一段函数.
于是我想XAML是不是也能这样呢?
比如, 在一个Button加载完之后执行一条语句, 跳一个MessageBox什么的? 可貌似, 在XAML中不能显式调用函数...
正所谓初生牛犊不怕虎, 于是我这样做:
1, 首先创建一个能在XAML中写的标签, 为了造成一层轻薄的假象, 这个标签就叫做Script好了~ Script标签下的只能调用函数...怎么调用呢? 于是我想到用属性调用. 这个属性拥有函数般的名字, 而它的value其实只是函数的参数...
真正残念
public class Script:UIElement { public string ShowMessage { set { MessageBox.Show(value.ToString()); } } }
2, 在XAML中添加命名空间, 在这里我还算是老实地带上了local的前缀...
<Window x:Class="WpfTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfTest" Title="MainWindow" Height="350" Width="525">
3, 在window的内容布局控件中随便加点Button什么的, 然后把Script放在后面, 比如这样
<StackPanel> <Button>1231231231</Button> <Button>1231231231</Button> <Button>1231231231</Button> <Button>1231231231</Button> <Button>1231231231</Button> <local:Script ShowMessage="haha" /> </StackPanel>
4, 运行...
果然, 在Button add到StackPanel的Children中之后, 实例化Script并对这个带有函数般名字的属性ShowMessage设置的时候, MessageBox出现了.
实验到此结束, 当然这个实验几乎没有任何意义. 不过本人算是心满意足地在XAML中显示调用了函数.
然后, 这个时候, 对于习惯了C/C++编译后运行的我来说, 有趣的事情发生了.
各位可以试着随意更改Script标签上面的按钮, 比如添加一个Button或是删除一个Button什么的, 随着设计器的刷新, MessageBox.Show(value.ToString())也将又一次地被执行到.
哈哈, 少见多怪了. 但的确很有趣不是吗?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库