C# WPF编程-XAML

XAML简述

XAML(Extensible Application Markup Language的简写,发音"zammel")是用于实例化.NET对象的标记语言。XAML可引用于诸多领域的技术,但主要作用是构造WPF用户界面。WPF通过XAML设计用户界面。但XAML对于WPF不是必需的,通过代码来构造WPF窗口也是可以的。

XAML子集

  • WPF XAML 包含描述WPF内容的元素,如矢量图形,控件及文档。
  • XPS XAML是WPF XAML的一部分,它为格式化的电子文档定义了一种XML表示方式。
  • Silverlight XAML是一个用于Microsoft Silverlight应用程序的WPF XAML子集。Silverlight是一个跨平台的浏览器插件,通过它可创建具有二维图形、动画、音视频的富Web内容。
  • WF XAML包括描述WF(Work Flow,工作流)内容的元素。

XAML编译

XML的设计目标是具有逻辑性、易读且简单,但没有被压缩。WPF使用BAML(Binary Application Markup Language,二进制应用程序标记语言)来克服这个缺点。BAML实际就是XAML的二进制表示。Visual Studio编译WPF应用程序时,所有XAML文件都被转换为BAML,这些BAML然后作为资源被嵌入到最终的DLL或EXE程序集中。编译器会在后台执行这项工作。但也可以使用未经编译的XAML,这对于需要即时提供一些用于界面的情况可能是有意义的。

XAML基础

XAML标准是非常简单的:

  • XAML文档中的每个元素都映射为.NET类的一个实例。元素的名称也完全对应于类名。
  • 与所有XML文档一样,可以在一个元素中嵌套另一元素。
  • 可通过特性(attribute)设置每个类的属性(property)。

XAML文档基本框架,一个空白窗口:

<Window x:Class="WpfHelloWorld.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        Title="MainWindow" Height="450" Width="800">
        <Grid>
        </Grid>
</Window>

尽管可以使用任何顶级元素,但是WPF应用程序只使用以下元素作为顶级元素:

  • Window元素
  • Page元素(该元素和Window元素类似,但它用于可导航的应用程序)
  • Application元素(该元素定义应用程序资源和启动设置)

XAML名称空间

只提供类名是不够的。XAML解析器还需要知道类位于哪个.NET名称空间。XAML解析器会检查应用于元素的XML名称空间。

示例文档定义的名称空间:

 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns特性是XML中的一个特殊特性,它专门用来声明名称空间。在创建的所有WPF XAML文档中都会使用到这两个名称空间

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SongYuLong的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值