zoukankan      html  css  js  c++  java
  • WPF学习之入门篇

    写于 2013-12-17 17:24:51 

    一、什么是WPF

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

    二、WPF和WinForm的区别

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

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

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

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

    1. <Button>
    2. <Button.Template>
    3. <ControlTemplate>
    4. <Grid>
    5. ....
    6. </Grid>
    7. </ControlTemplate>
    8. </Button.Template>
    9. </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#换了一种展现形式而已。

           

  • 相关阅读:
    654. Maximum Binary Tree
    764. Largest Plus Sign
    763. Partition Labels
    dasd
    IT项目管理——《人月神话》读后感
    计算机网络实验八实验报告——应用Packet Tracer 5.0模拟器工具对WLAN进行配置
    Explain分析查询语句
    ​二十种实战调优MySQL性能优化的经验
    查询优化 | MySQL慢查询优化
    InnoDB并发事务
  • 原文地址:https://www.cnblogs.com/shushukui/p/9295121.html
Copyright © 2011-2022 走看看