📅  最后修改于: 2023-12-03 15:06:04.129000             🧑  作者: Mango
XAML(Extended Application Markup Language)是用于创建用户界面的标记语言。它是一种声明性语言,类似于 HTML,但更注重逻辑性和应用分层。
XAML可以被用来创建多种类型的应用程序,例如:Windows Presentation Foundation (WPF)、Windows Store、UWP 常见应用程序、Silverlight 和 Windows Workflow Foundation (WF) 等。下面是 XAML 语言的一些常见用法和语法:
Grid 是 XAML 中最基本的布局元素之一,它将元素排列在类似于网格的结构中。
代码片段:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0" Content="Button 1" />
<Button Grid.Row="0" Grid.Column="1" Content="Button 2" />
<Button Grid.Row="1" Grid.ColumnSpan="2" Content="Button 3" />
</Grid>
StackPanel 是 XAML 中常用的一个用来布局子元素的容器。
代码片段:
<StackPanel Orientation="Vertical">
<Button Content="Button 1" />
<Button Content="Button 2" />
<Button Content="Button 3" />
</StackPanel>
TextBlock 是用于显示文本的控件。
代码片段:
<TextBlock Text="Hello, World!" />
XAML 支持数据绑定功能,这使开发人员可以将 UI 元素与底层数据模型绑定。
代码片段:
<Grid>
<Grid.DataContext>
<local:Person Name="Tom" Age="25" />
</Grid.DataContext>
<StackPanel>
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Age}" />
</StackPanel>
</Grid>
XAML 支持样式和模板的创建。样式用于指定 UI 元素的外观和行为,而模板指定 UI 元素的外观。
代码片段:
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="Red" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="5">
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel>
<Button Content="Button 1" />
<Button Content="Button 2" />
<Button Content="Button 3" />
</StackPanel>
XAML 允许开发人员通过指定事件处理程序将逻辑代码与 UI 事件相结合。
代码片段:
<StackPanel>
<Button Content="Click me!" Click="Button_Click" />
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Button clicked!");
}
这里只是介绍了 XAML 的一部分,但足以让开发者了解 XAML 的基本用法。通过组合这些特性和其他实用特性,可以创建出美观而强大的应用程序。