西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页编程开发其它知识 → 快速掌握WPF XAML的基本概念和基本语法

快速掌握WPF XAML的基本概念和基本语法

相关软件相关文章发表评论 来源:西西整理时间:2012/11/26 14:18:36字体大小:A-A+

作者:西西点击:0次评论:0次标签: WPF

Actipro WPF Studiov11.1.0541 注册版
  • 类型:编程控件大小:58.9M语言:英文 评分:6.6
  • 标签:
立即下载

本篇从如下两个方面学习WPF XAML:
1、基本概念
2、基本语法

一、基本概念
1、XAML是派生自XML的可扩展应用程序标记语言(Extensible Application Markup Language)。微软创造。应用在WPF,WF,Silverlight,Metro App等开发技术中。
2、在WPF中,XAML用来开发用户界面。继承了XML的Tag,Attribute等语法。另有一些语法上的创新。
3、在WPF中,XAML运行在CLR之上,但它不编译为IL,而是编译为BAML代码,在运行时会被解析成CLR类型(Types)。
4、WPF中XAML是大小写敏感的。

二、基本语法
1、Tag语法=对象元素(Object Elements)
每个标签即是一个对象元素,将被解析为一个WPF Framework(主要来自PresentationFramework.dll)中的类的实例。下面的代码就是一个对象元素,运行时会被解析为一个Button对象实例。

<Button></Button>

或写成

<Button />

2、Attribute赋值语法

2.1 普通字符串赋值。下面代码给Button的Property和Event赋值。字符串将被通过包装好的TypeConverter来转换成对象。TypeConverter使用C#的Attribute技术来实现的。

<Button Content="aaa" Click="Button_Click" />

2.2 标记扩展赋值。用花括号这种方式赋值就叫标记扩展赋值。常用的地方是在用到绑定和资源的时候。

<Button Command="{Binding Copy}" />

2.3 属性元素赋值。有的时候简单字符串赋值不了的,就用属性元素赋值。

<Button>
    <Button.Content>aaa</Button.Content>                
</Button>

2.4 内容赋值。控件要有Content这个属性,也就是要继承自ContentControl这个类,才能这么赋值。夹在标签中间。

<Button>aaa</Button>

2.5 集合赋值。下面例子是给StackPanel.Children这个属性赋值一个集合,被省略了。这个属性的类型是UIElementCollection。在这个例子,我们也看到WPF支持一些省略的写法,在实际开发中运用,可以使XAML代码更简洁。

<StackPanel>
    <Button>a</Button>
    <Button>b</Button>
</StackPanel>

3、命名空间。

一般用在Root元素上(Application,Window,UserControl,Page,ResourceDictionary等)。如下例子,xmlns为引入命名空间的attribute。第一行xmlns是没有指定别名的,是默认命名空间,它指定的命名空间包含了微软提供所有的XAML控件的程序集。第二行xmlns别名是x,也是微软提供的命名空间,这里面主要包含了一些关于解析Xaml语言的程序集。第三行xmlns是自己引入的,开发人员自己写的控件等,可以通过命名空间这种方式引用到XAML文档来使用。

<Window x:Class="WpfFirst.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:System;assembly=System"
        Title="MainWindow" Height="350" Width="525">    
</Window>

4、附加属性,附加事件。

下面例子,Panel.ZIndex就是附加属性,而附加事件是界面上用不了的。具体在写属性和事件时候讨论。

<StackPanel>
  <Button Panel.ZIndex="1">a</Button>
  <Button Panel.ZIndex="2">b</Button>
</StackPanel>

5、树。

XAML文档是树状结构的。在WPF中,有逻辑树(Logical Tree)和可视树(Visual Tree)的概念,在运行时会维护这两棵树。逻辑树是以我们看到的控件为节点的,这些控件一般继承与FrameworkElement or FrameworkContentElement,而可视树能看到控件内部的元素,这些元素一般继承自Visual类。WPF提供了两个辅助类(LogicalTreeHelper and VisualTreeHelper)来操作这两棵树。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)
    推荐文章

    没有数据