当前位置: 移动技术网 > IT编程>开发语言>.net > 【WPF学习】第一章 XAML介绍

【WPF学习】第一章 XAML介绍

2020年01月01日  | 移动技术网IT编程  | 我要评论

孟雪个人资料,末日重生之龙帝,常永祥

   xaml(extensible application markup language的简写,发音为“zammel”)是用于实例化.net对象的标记语言。尽管xaml是一种应用于诸多不同问题领域的技术,但其主要作用是构造wpf用户界面。换言之,xaml文档定义了在wpf应用程序中组成窗口的面板、按钮以及各种空间的布局。

一、xaml变体

  实际上术语“xaml”有多种含义。到目前为止,我们使用xaml标识整个xaml语言,它是一种基于通用xml语法、专门用于表示一颗.net对象树的语言(这些对象可以是窗口中的按钮、文本框,或是已经定义好的自定义类。)

  xaml还包含如下几种:

  • wpf xaml包含描述wpf内容的元素,如矢量图形、控件以及文档。目前,它是最重要的xaml应用。
  • xps xaml是wpfxaml的一部分。它为格式化的电子文档定义了一种xml标识方式。xps xaml已作为单独的xml页面规范(xml paper specification ,xps)标准发布。
  • silverlight xaml是一个用于microsoft silverlight应用程序的wpf xaml子集。silverlight是一个跨平台的浏览器插件,通过它可创建具有二维图形、动画、音频和视频的富web内容。
  • wf xaml包含描述wf(work flow,工作流)内容的元素。

二、xaml基础

  一旦理解了一些基础规则,xaml标准是非常简单的:

  • xaml 文档中的每个元素都映射为.net类的一个实例。元素的名称也完全对应于类名。例如,元素<button>指示wpf创建的button对象。
  • 与所有xml文档一样,可以在一个元素中嵌套另一个元素。但嵌套通常是一种表示“包含”的方法——换句话说,如果在一个grid元素中发现一个button元素,那么用户界面可能包括一个在其内部包含的一个button元素的grid元素。
  • 可通过特性(attribute)设置每个类的属性(property)。但在某些情况下,特性不足以完成这项工作。对于此类情况,需要通过特殊的语法使用嵌套的标签(tag)。

  使用vs2012创建一个wpf项目。默认生成主窗体的xaml代码如下所示:

1 <window x:class="wpfapplication1.mainwindow"
2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4         title="mainwindow" height="350" width="525">
5     <grid>
6         
7     </grid>
8 </window>

  该文档仅包含两个元素——顶级的window元素以及一个grid元素,window元素代表整个窗口,在grid元素中可以放置所有控件。尽管可以使用任何顶级元素,但是wpf应用程序只使用以下几个元素作为顶级元素:

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

  与在所有xml文档中一样,在xaml文档中只能有一个顶级元素。在上例中,意味使用</window>标签关闭了window元素,文档就结束了。

2.1、xaml名称空间

  xaml解析器需要知道类位于哪个.net名称空间。例如,在许多名称空间中可能都有window类——windowm类可能是指system.windows.window类,也可能是指位于第三方组件中的window类。为了弄清实际上希望使用哪个类,xaml解析器会检查应用于元素的xml名称空间。

   上面显示的示例文档定义了两个名称空间:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

  xmlns特性是xml中的一个特殊特性,它专门用来声明名称空间,这段标记声明了两个名称空间,在创建的所有wpf xaml文档中都会使用这两个名称空间:

  • http://schemas.microsoft.com/winfx/2006/xaml/presentation是wpf核心名称空间。它包含了所有wpf类,包括用来构建用户界面的控件。在该例中,该名称空间的声明没有使用名称空间前缀,所以它成为整个文档的默认名称空间。换句话说,除非另外指明,每个元素自动位于这个名称空间。
  • http://schemas.microsoft.com/winfx/2006/xaml 是xaml名称空间。它包含各种xaml使用特性,这些特性可影响文档的解释方式。该名称空间被映射为前缀x。这意味着可通过在元素名称之前放置名称空间前缀x来使用该名称空间(例如<x:elementname>)。

2.2 代码隐藏类

  可通过xaml构造用户界面,但为了使应用程序具有一定的功能,就需要用于连接包含应用程序代码的事件处理程序的方法。xaml通过使用如下所示的class特性简化了这个问题:

<window x:class="wpfapplication1.mainwindow">

   在xaml名称空间的class特性之前放置了名称空间前缀x,意味着这是xaml语言中更通用的部分。实际上,class特性告诉xaml解析器用指定的名称生成一个新类。该类继承自由xml元素命名的类。换句话说,该实例创建了一个名为mainwindow的新类,该类继承自window基类。

  

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网