专栏首页liulun学习WPF——了解WPF中的XAML

学习WPF——了解WPF中的XAML

XAML的简单说明

XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面 XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Button对象 XAML可以在一个元素中嵌套另一个元素,例如Grid元素可以嵌套Button元素

了解XAML

VisualStudio创建一个窗口,默认情况下产生的代码如下:

这段代码中包含两个标记元素,一个是Window,一个是Grid Window是WPF顶级元素的一种,还有另外两种顶级元素Page和Application Window 用于描述一个窗口

Page 和Window类似,但它用于可导航的应用程序

Application 用于定义应用程序资源和启动设置

任何一个XAML文档只能拥有一个顶级元素

属性

窗口标签中Title、Height、Width都是窗口的属性 在XAML文件中属性的值的类型总是字符串, 但XAML的解析器可以把这些字符串转换成.NET的任意类型

名称空间

在上面代码中,用xmlns属性来标记此文档从属于哪个名称空间 为什么需要名称空间呢? 如果我们在第三方组件中定义了Window类,如果没有一个名称空间做限定的话, 编译器不知道我们将使用哪个Window类型来渲染窗口 我们在上面的代码中,看到了两个名称空间,一个是WPF核心名称空间、一个是XAML名称空间 WPF核心名称空间 http://schemas.microsoft.com/winfx/2006/xaml/presentation 包含所有WPF类,包含用来构建用户界面的控件,是文档的默认名称空间 XAML名称空间 http://schemas.microsoft.com/winfx/2006/xaml 包含各种XAML实用特性,这些特性可以影响文档的解释方式,该名称空间被映射为前缀x,使用前需要标注前缀x,比如:<x:ElementName> 有了名称空间的限定,我们直接书写的<Grid>标签,才可以映射到System.Windows.Controls.Grid类上

代码隐藏类

XAML创建用户界面,但交互规则还是需要.NET语言编写 x:Class属性标记着与该XAML文件相配合的.NET类

注意这个类是一个“部分类” 这个部分类的构造函数中调用了InitializeComponent方法, 这个方法负责创建控件对象、设置属性、绑定事件、构造用户界面等工作

复杂属性

有些属性的值不是一个简单类型,而是一个对象,不如下面这个Grid的背景颜色 我们现在只要知道XAML解析器也能创建出复杂属性对应的值即可

标记扩展

如果我们希望把属性值绑定为一个已经存在的对象,那么我们可以使用静态标记扩展

标记扩展还有很多其他的用法,我们以后再聊 这里也涉及到了属性绑定,我们以后再聊

附加属性

对于嵌套的元素,子元素可以使用父元素定义的一些属性,这类属性就是附加属性 在WPF中附加属性多用于布局

修改记录

2015-1-5:完成全部内容

参考资料

《Pro WPF 4.5 in C# 4th Edition》 MSDN

备注

本篇只简单介绍了XAML的常见知识,还有一些不常见的知识、高级主题暂时没有涉及

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学习WPF——初识依赖项属性

    入门 首先创建一个依赖项属性 ? 然后绑定父容器的DataContext到这个依赖项的实例 ? 接着绑定子元素的属性到依赖项属性(注意Button的Conten...

    liulun
  • 学习WPF——WPF布局——了解布局容器

    WPF布局工作内部原理 WPF渲染布局时主要执行了两个工作:测量和排列 测量阶段,容器遍历所有子元素,并询问子元素所期望的尺寸 排列阶段,容器在合适的位置...

    liulun
  • 【翻译】WPF4.5新特性(MSDN的翻译读不太懂)

    我很在意WPF的发展,有人说微软不再维护WPF了,无所谓,随他去。 MSDN上有简体版:http://msdn.microsoft.com/zh-cn/libr...

    liulun
  • CSS——属性列表

    Html5知典
  • 解决wap手机百度APP中 网站img标签点击跳转图片

    今天发现手机百度客户端中普通的img标签点击动作会被跳转到图片链接,(这个问题是我们运营跟我讲的,不然我也没发现。)应该是手机百度APP抽风了。img标签也能给...

    AlexTao
  • 前端简洁并实用的工具类

    腾讯NEXT学位
  • 学习WPF——WPF布局——了解布局容器

    WPF布局工作内部原理 WPF渲染布局时主要执行了两个工作:测量和排列 测量阶段,容器遍历所有子元素,并询问子元素所期望的尺寸 排列阶段,容器在合适的位置...

    liulun
  • css应知应会 第一集

    ================================================

    李才哥
  • 第213天:12个HTML和CSS必须知道的重点难点问题

    这12个问题,基本上就是HTML和CSS基础中的重点个难点了,也是必须要弄清楚的基本问题,其中定位的绝对定位和相对定位到底相对什么定位?这个还是容易被忽视的,浮...

    半指温柔乐

扫码关注云+社区

领取腾讯云代金券