C#学习☞WPF的一个有趣试验

简介: 学习C#.net有两三个星期了, 怎奈书本略厚, 工作略繁杂, 于是各种跳章, 好不容易跳到了WPF的章节. 看了第27章, 就突然产生了一个想法. 总觉得WPF是在跟网页制作较劲, 网页的HTML标签一行一行加载下来, 如果有一行button加载完了, 下面可以写一个js标签, 显示地执行一段函数.

学习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())也将又一次地被执行到.

哈哈, 少见多怪了. 但的确很有趣不是吗?

 

目录
相关文章
|
3月前
|
XML 开发框架 前端开发
WPF学习之基础知识篇
WPF(Windows Presentation Foundation)具有一个复杂且强大的架构,旨在提供丰富的用户界面、图形、动画和多媒体功能。
102 9
|
2月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
C# WPF 中 外部图标引入iconfont,无法正常显示问题 【小白记录】
本文介绍了在C# WPF应用程序中引入外部iconfont图标时可能遇到的显示问题及其解决方法:1) 检查资源路径和引入格式是否正确,确保字体文件引用格式为“#xxxx”,并正确指向字体文件位置;2) 确保图标资源被包含在程序集中,通过设置字体文件的生成操作为Resource(资源)来实现。
C# WPF 中 外部图标引入iconfont,无法正常显示问题 【小白记录】
|
3月前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
|
4月前
|
编解码 C# 数据库
C# + WPF 音频播放器 界面优雅,体验良好
【9月更文挑战第18天】这是一个用 C# 和 WPF 实现的音频播放器示例,界面简洁美观,功能丰富。设计包括播放/暂停按钮、进度条、音量控制滑块、歌曲列表和专辑封面显示。功能实现涵盖音频播放、进度条控制、音量调节及歌曲列表管理。通过响应式设计、动画效果、快捷键支持和错误处理,提升用户体验。可根据需求扩展更多功能。
154 3
|
4月前
|
Linux C# 开发者
Uno Platform 驱动的跨平台应用开发:从零开始的全方位资源指南与定制化学习路径规划,助您轻松上手并精通 C# 与 XAML 编程技巧,打造高效多端一致用户体验的移动与桌面应用程序
【9月更文挑战第8天】Uno Platform 的社区资源与学习路径推荐旨在为初学者和开发者提供全面指南,涵盖官方文档、GitHub 仓库及社区支持,助您掌握使用 C# 和 XAML 创建跨平台原生 UI 的技能。从官网入门教程到进阶技巧,再到活跃社区如 Discord,本指南带领您逐步深入了解 Uno Platform,并提供实用示例代码,帮助您在 Windows、iOS、Android、macOS、Linux 和 WebAssembly 等平台上高效开发。建议先熟悉 C# 和 XAML 基础,然后实践官方教程,研究 GitHub 示例项目,并积极参与社区讨论,不断提升技能。
124 2
|
5月前
|
C#
C# WPF 将第三方DLL嵌入 exe
C# WPF 将第三方DLL嵌入 exe
103 0
|
5月前
|
开发框架 .NET API
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
115 0
|
5月前
|
前端开发 C# 容器
WPF/C#:实现导航功能
WPF/C#:实现导航功能
108 0
|
5月前
|
设计模式 测试技术 C#
WPF/C#:在WPF中如何实现依赖注入
WPF/C#:在WPF中如何实现依赖注入
91 0