📅  最后修改于: 2020-11-18 09:50:45             🧑  作者: Mango
使用WPF时遇到的第一件事就是XAML。 XAML代表可扩展应用程序标记语言。这是一种基于XML的简单声明性语言。
在XAML中,创建,初始化和设置具有层次关系的对象的属性非常容易。
它主要用于设计GUI,但是也可以用于其他目的,例如,在Workflow Foundation中声明工作流。
创建新的WPF项目时,默认情况下,MainWindow.xaml中会遇到一些XAML代码,如下所示。
上面的XAML文件包含不同类型的信息。下表简要说明了每种信息的作用。
Information | Description |
---|---|
It is the opening object element or container of the root. |
|
x:Class = “Resources.MainWindow” | It is a partial class declaration which connects the markup to the partial class code defined behind. |
xmlns = “http://schemas.microsoft.com/win fx/2006/xaml/presentation” | Maps the default XAML namespace for WPF client/framework |
xmlns:x = “http://schemas.microsoft.com/w infx/2006/xaml” | XAML namespace for XAML language which maps it to x: prefix |
> | End of object element of the root |
|
It is starting and closing tags of an empty grid object. |
Closing the object element |
XAML的语法规则几乎与XML类似。如果查看XAML文档,则会注意到它实际上是有效的XML文件,但是XML文件不一定是XAML文件。这是因为在XML中,属性的值必须是一个字符串,而在XAML中,它可以是一个不同的对象,称为属性元素语法。
Object元素的语法以左尖括号(<)开头,后跟对象名称,例如Button。
定义该对象元素的一些属性和属性。
Object元素必须用正斜杠(/)紧跟,然后紧跟一个直角括号(>)。
XAML不仅是WPF最广为人知的功能,而且还是最容易被误解的功能之一。如果您接触过WPF,那么您一定听说过XAML。但请注意以下有关XAML的两个鲜为人知的事实-
实际上,它们是可分离的技术。为了理解这是怎么回事,让我们看一个简单的示例,其中在XAML中创建带有某些属性的按钮。
如果您选择在WPF中不使用XAML,那么您也可以使用过程语言获得相同的GUI结果。让我们看一下相同的示例,但是这次,我们将在C#中创建一个按钮。
using System.Windows;
using System.Windows.Controls;
namespace WPFXAMLOverview {
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
// Create the StackPanel
StackPanel stackPanel = new StackPanel();
this.Content = stackPanel;
// Create the Button
Button button = new Button();
button.Content = "Click Me";
button.HorizontalAlignment = HorizontalAlignment.Left;
button.Margin = new Thickness(150);
button.VerticalAlignment = VerticalAlignment.Top;
button.Width = 75;
stackPanel.Children.Add(button);
}
}
}
当编译并执行XAML代码或C#代码时,将看到如下所示的相同输出。
从上面的示例中可以明显看出,您可以在XAML中创建,初始化和设置对象属性的操作,也可以使用代码来完成相同的任务。
XAML只是设计UI元素的另一种简单方法。
使用XAML,并不意味着您可以设计UI元素是唯一的方法。您可以在XAML中声明对象,也可以使用代码定义它们。
XAML是可选的,但是尽管如此,它还是WPF设计的核心。
XAML的目标是使视觉设计师能够直接创建用户界面元素。
WPF旨在通过标记来控制用户界面的所有可视方面。