1. XAML 基础语法

1. XAML 基础语法

标签

XAML 运用 XML 标签来定义界面元素。以下是一个简单的示例,创建了一个包含文本的按钮:
<Button Content="Click Me!" />

这里的 <Button> 就是一个标签,Content 是它的属性。

属性

属性用来设置元素的特性。可以在标签内以键值对的形式指定属性,如下所示:
<Button Content="Click Me!" Width="100" Height="30" />
此代码中,Width 和 Height 就是 Button 元素的属性。
 
使用属性元素语法。例如,为 Button 设置 Style 属性:
<Button>
    <Button.Style>
        <Style TargetType="Button">
            <Setter Property="Background" Value="Red"/>
        </Style>
    </Button.Style>
    <Button.Content>Styled Button</Button.Content>
</Button>

 

命名空间(xmlns)

命名空间用于引用不同的类库。在 XAML 里,xmlns 前缀用于声明命名空间。例如:
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <!-- 窗口内容 -->
</Window>
xmlns 声明了默认的 WPF 命名空间,xmlns:x 声明了 XAML 语言命名空间。

代码隐藏关联(x:Class)

x:Class 属性把 XAML 文件和对应的代码隐藏文件关联起来。例如:
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <!-- 窗口内容 -->
</Window>
这里的 x:Class="WpfApp1.MainWindow" 表明该 XAML 文件与 WpfApp1 命名空间下的 MainWindow 类关联。

2. 数据类型转换

x:Type

x:Type 标记扩展用于获取类型的 Type 对象。例如,在设置 DataTemplate 的 DataType 属性时会用到:
<DataTemplate DataType="{x:Type local:Person}">
    <StackPanel>
        <TextBlock Text="{Binding Name}" />
        <TextBlock Text="{Binding Age}" />
    </StackPanel>
</DataTemplate>
这里的 {x:Type local:Person} 会获取 Person 类型的 Type 对象。

x:Array

x:Array 标记扩展用于创建数组。例如:
<x:Array Type="sys:String" xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:String>Item 1</sys:String>
    <sys:String>Item 2</sys:String>
</x:Array>
此代码创建了一个字符串数组。

x:Static

x:Static 标记扩展用于引用静态属性或字段。例如:
<TextBlock Text="{x:Static local:MyClass.MyStaticProperty}" />
这里的 {x:Static local:MyClass.MyStaticProperty} 会引用 MyClass 类的静态属性 MyStaticProperty
 

x:Null

x:Null 标记扩展用于将属性设置为 null 值。例如:
<TextBlock Text="{x:Null}"/>

x:Reference

x:Reference 标记扩展可用于引用 XAML 中已定义的元素。例如:
<Button x:Name="firstButton" Content="First Button"/>
<Button Content="{x:Reference firstButton}"/>

 

3. 注释与调试

x:Name 命名元素

x:Name 属性用于为元素命名,这样在代码隐藏文件中就能引用该元素。例如:

<Button x:Name="myButton" Content="Click Me!" />
在代码隐藏文件中,可以通过 myButton 来引用这个按钮。

x:Uid 本地化支持

x:Uid 属性为元素提供唯一标识符,便于进行本地化处理。例如:
<TextBlock x:Uid="textBlock1" Text="Hello, World!" />
在本地化过程中,可以依据 x:Uid 来查找并替换元素的文本。

4. 资源管理

XAML 支持资源管理,可在 ResourceDictionary 中定义资源,然后在整个应用程序中复用。例如:
<Window.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Blue"/>
</Window.Resources>
<Button Background="{StaticResource MyBrush}" Content="Colored Button"/>

5. 绑定

数据绑定是 XAML 的重要特性,它能让界面元素和数据对象建立关联。例如:
<TextBlock Text="{Binding Name}"/>
这里的 Name 是数据对象的一个属性。
posted @ 2025-04-09 15:53  灰色淡季  阅读(44)  评论(0)    收藏  举报