WPF学习之入门篇

一、什么事WPF

       用我的话说WPF开发出来的目的就是为了替代WinForm的。从微软的种种迹象来说,WinForm逐渐会遭到淘汰(各位WinForm程序员注意了。),毕竟WinForm已经经历了几十年的发展。该有一项新技术来替代了。废话少说,接下来我们进入正题。

二、WPF和WinForm的区别

       在用一项技术的时间我们一定要先彻底的了解它,知道它的优点以及缺点。找到最适合应用这项技术的场合。用恰当的工具在恰当的地点做恰当的事情。

       在做传统WinForm开发的时候,我们如果想对一个Button进行重绘,通常有这么两种方法。1、贴图。2、GDI重绘。当然你可能还会说,我能用DirectX画。不过需要注意的是,我们在做开发的时候要注意控制一下开发成本。

       贴图少不了美工,大部分程序员都是UI方面的白痴,当然也包括本人。图片资源放在哪里始终是个值得纠结的问题。放在程序的资源文件里吧文件会变得很大。和程序分离出来吧,免不了被哪个闲的蛋疼的删掉。

       我们再反过来看WPF是怎么处理Button重绘的。


<Button>
    <Button.Template>
        <ControlTemplate>
            <Grid>
                ....
            </Grid>
        </ControlTemplate>
    </Button.Template>
</Button>

       看到上面的代码,你想到了什么?xml、html还是什么?错,全都不是,这是xaml(官方的解释是:eXtensible Application Markup Language  可扩展应用程序标记语言)。看到这个你可能会想,难道wpf的代码是用xaml实现的吗?这可能说是wpf有别于winform最大的特点了(当然只是表面上看起来)。UI部分的代码通过xaml实现,后面逻辑还是继续用c#、vb.net来实现。

三、了解XAML

       你可能想问,xaml到底是什么?和xml有什么区别。从表面上看xaml和c#的语法是完全不同的。没有人会认为这是同一种语言。但我们仔细看上面的例子,<Button>....</Button>这是一个控件的开始结束标记,很明显可以看出这是一个Button控件。和c#里的 Button btn = new Button();没什么两样。<Button.Template>这明显是Button控件的Template属性。ControlTemplate是另外一个对象。从字面意思上就可以理解是控件模板。用ControlTemplate去替换Button的Template。这么一分析就很容易理解了,其实xaml只不过是把c#换了一种展现形式而已。

      




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值