XAML概览 1(译自JeremyBytes.com)

(文章译自JeremyBytes.com,由于原文太长,故分成几篇,能力所限,如有疏漏,希望海涵。另外若有侵权,务必尽快告知)

Overview

  

  了解XAML (可扩展应用程序标记语言)是使用WPF和Silverlight打造最新的.NET用户体验的关键。我们将介绍XAML中的基本概念,并看看它的各种功能,例如命名空间,元素,properties,事件,附加propertise和一些基本布局。我们将创建一个简单的涵盖了这些基础的WPF应用程序。虽然你最终可能会使用拖放工具(如Expression Blend之类)来做大部分的UI设计,但是知道内部的代码实现,能够在你进行最终调整时助你一臂之力,以确保打造卓越的用户体验。

  

  Visual Studio IntelliSense在XAML文件中运行良好。这意味着,当我们进行输入时,我们将得到标签补全,attribute补全,甚至值补全(对于那些枚举值)。取舍之后,你会发现自己大部分的XAML工作都在Visual Studio编辑器中完成了,而可视化的设计工具则被留待对付复杂的情形。

 

The Set Up

  我们将要完成的应用程序是一个简单的秒表。我们从一个WPF应用程序的骨架开始,它包含了一个实现计时器功能的类(我们将自己动手来填充用户界面)。您也可以直接下载这个应用程序的源代码,从这里:http://www.jeremybytes.com/Downloads.aspx。下载里包括初始项目代码和完成后的完整项目代码。项目如下:

  • SimpleStopWatch - 这是我们将要做的应用程序。这仅是​​一个添加了Ticker.cs这个类的新的WPF项目。
  • WpfStopWatch - 这是一个完整的应用,包含了一些额外的部分(额外的样式,画笔和自定义表单处理)。这些附加特征是在本介绍范围外的东西;您可以在其他时间再详加了解。

An Initial Window

  当新创建一个WPF应用程序时,得到的初始XAML文件的内容如下:

<Window x:Class="SimpleStopWatch.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        
    </Grid>
</Window>

  让我们简单地浏览一下这些元素。

XAML is XML

  需要注意的XAML的第一件事情是——它是XML。如果你需要XML的概述,你可以去这里:http://www.w3schools.com/xml/default.asp。由于XAML是XML文档,它只能有一个根元素。在这种情况下,根元素是“<Window>”(但“<Page>”和“<UserControl>”也很常见)。

XAML Elements are .NET Classes

  在XAML文档中的每个元素都是一个.NET类。这意味着<Window>”和 <Grid>”也是.NET类。

XAML Namespaces

  为了引用.NET类,我们还需要引用相关的命名空间。你可以把这当做在.cs文件中使用 “using”语句。命名空间使用xmlns attribute添加到XAML。您可以看到,在默认情况下,包括2个命名空间:

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

  第一句是指标准的WPF命名空间。这也是默认的命名空间,所以任何没有前缀的元素都被认为来自该位置。你会发现,命名空间被写为一个URI。这并不是物理位置,而是命名空间的唯一标识符。

  第二句是指XAML命名空间。由xmlns:x定义,“x”是一个别名,你可以把它作为该命名空间元素的前缀使用。我们稍后再深入地谈一下。

  显然,你也可以在列表上添加自己的命名空间,我们后面会这样做。

XAML Code Behind

  在x:Class attribute指向此XAML窗口的隐藏代码。你会发现有“x:”,这意味着Class attribute来自上面提到的XAML命名空间。该attribute的值指向“SimpleStopWatch”命名空间中的“Window1”类。如果你去看Window1.xaml.cs文件,你会看到,这个局部类定义在了这里。

  

  后面的代码就是我们放置C#(或VB)代码的地方,放置的代码包括事件处理器和其他应用程序逻辑。提醒一下,从技术角度来说所有的XAML元素都是可以用代码实现(WinForms应用程序就是用代码来实现所有用户界面的),但如此就舍弃了使用XAML的优势。

Other Starting Attributes

  该窗口元素的其他attributes(Title=“Window1” Height=“300” Width=“300”)是窗口类的简单properties(接下来有更多的讲述)。

The Grid Element

  最后一个元素是<Grid>元素。我们将尽快填补它。现在,请留意窗口元素只允许一个孩子。这意味着,如果我们想要在我们的Window中包含一个以上的控件,将需要把这些控件包装在某个允许多个孩子的布局控件中。Grid就是这种控件。

 

  

原文地址:https://www.cnblogs.com/read-the-spring-and-autumn-annals-in-night/p/3994616.html