📅  最后修改于: 2020-11-19 08:25:19             🧑  作者: Mango
XAML是使用Silverlight时遇到的第一件事。 XAML代表可扩展的应用程序标记语言。它是一种基于XML的简单声明性语言。
在XAML中,创建,初始化和设置具有层次关系的对象的属性非常容易。
它主要用于设计GUI。
它也可以用于其他目的,例如,在Workflow Foundation中声明工作流。
创建新的Silverlight项目时,默认情况下,您将在MainPage.xaml中看到一些XAML代码,如下所示。
您可以看到上面给出的XAML文件提到了各种信息。所有这些都在下表中简要描述。
Information | Description |
---|---|
Provides the base class for defining a new control that encapsulates the existing controls and provides its own logic. |
|
x:Class = “FirstExample.MainPage” | It is a partial class declaration, which connects the markup to that partial class code behind, defined in it. |
xmlns = “http://schemas.microsoft.com /winfx/2006/xaml/presentation” | Maps the default XAML namespace for Silverlight client/framework. |
xmlns:x = “http://schemas.microsoft.c om/winfx/2006/xaml” | XAML namespace for XAML language, which maps it to x: prefix. |
xmlns:d = “http://schemas.microsoft.com /expression/blend/2008” | XAML namespace is intended for designer support, specifically designer support in the XAML design surfaces of Microsoft Visual Studio and Microsoft Expression Blend. |
xmlns:mc = “http://schemas.openxmlforma ts.org/markup-compatibility/2006” | Indicates and supports a markup compatibility mode for reading XAML. |
> | End of object element of the root. |
These are the starting and closing tags of an empty grid object. | |
Closing the object element. |
XAML的语法规则几乎与XML相似。如果查看XAML文档,您会发现它实际上是一个有效的XML文件。反之亦然,因为在XML中,属性的值必须为字符串,而在XAML中,属性的值可以为不同的对象,这称为属性元素语法。
Object元素的语法以左尖括号(<)开头,后跟对象名称,例如Button。
定义了该对象元素的属性和属性。
Object元素必须用正斜杠(/)紧跟,然后紧跟一个直角括号(>)。
没有子元素的简单对象示例如下所示。
具有某些属性的对象元素的示例-
定义属性的替代语法示例(属性元素语法)-
具有子元素的对象的示例:StackPanel包含Textblock作为子元素。
XAML最初不是为Silverlight发明的。它来自Windows Presentation Foundation WPF。 Silverlight通常被描述为WPF的子集。这并不是严格意义上的,因为Silverlight可以执行WPF无法执行的某些操作。即使功能重叠,两者的细节也略有不同。
准确地说,WPF和Silverlight在许多方面都非常相似。尽管存在差异,但查看Silverlight从WPF借来的XAML功能仍然很有帮助。例如,Silverlight提供了用于位图和可缩放形状的图形基元。
它还提供了用于渲染视频和音频的元素。
它具有简单的格式化文本支持,并且您可以为任何元素设置动画。如果您知道WPF,则将熟悉此功能集。
重要的一点是,您不能使用WPF XAML并在Silverlight中使用它。
尽管存在相似之处,但您还会发现许多小的差异。
XAML定义了用户界面的外观和结构。但是,如果您希望应用程序在用户与其交互时做任何有用的事情,则将需要一些代码。
每个XAML文件通常与一个源代码文件相关联,我们将其称为后面的代码。各种Microsoft框架都使用此术语。
后面的代码通常将需要使用XAML中定义的元素,以检索有关用户输入的信息或向用户显示信息。
在下面给出的XAML代码中,定义了TextBlock和Button 。默认情况下,运行该应用程序时,它将显示文本“ Hello World!网页上的“”和一个按钮。
后面的代码可以访问以x:Name指令命名的任何元素。
通过后面的代码中的字段,可以使用命名元素,从而使代码能够以通常的方式访问这些对象及其成员。
x:Prefix表示该名称不是普通属性。
x:Name是XAML编译器的特殊信号,表示我们希望可以在后面的代码中访问此对象。
下面给出的是按钮单击事件实现,其中TextBlock文本已更新。
using System.Windows;
using System.Windows.Controls;
namespace FirstExample {
public partial class MainPage : UserControl {
public MainPage() {
InitializeComponent();
}
private void ClickMe_Click(object sender, RoutedEventArgs e) {
TextMessage.Text = "Congratulations! you have created your first Silverlight Applicatoin";
}
}
}
XAML不是设计UI元素的唯一方法。由您决定在XAML中声明对象还是在代码中声明/写入。
XAML是可选的,但是尽管如此,它还是Silverlight设计的核心。
XAML编码的目标是使视觉设计人员能够直接创建用户界面元素。因此, Silverlight旨在通过标记来控制用户界面的所有可视方面。