zoukankan      html  css  js  c++  java
  • 【WPF学习】第一章 XAML介绍

       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基类。

      

  • 相关阅读:
    三大主营业务全面开花 京东方半年报大幅盈利(半年446亿元,同比增长69%,实现净利润43亿元)
    JS几种变量交换
    Vue2
    树的插入、删除、旋转归纳
    从两个不同的ServiceProvider说起
    集中式路由
    MongoDB 可视化管理工具
    服务发布
    Parallel
    NET WebAPi之断点续传下载(下)
  • 原文地址:https://www.cnblogs.com/Peter-Luo/p/12093959.html
Copyright © 2011-2022 走看看