• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[轉]c#从Excel中读取图片发布时间:2022-07-13
下一篇:
C#将xmlxslt整合后的页面显示出来发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap