xaml 语法摘记

memetao 于 2024-03-10 发布

引用C#中的类

public class Student{
    public int id{get, set};
}
<Window x:Class = "xxx"
    ...
    xmlns:local="clr-namesapce:AppName">
    <local:Student id="6"/>
>

引用系统类型

<Window x:Class = "xxx"
    ...
    xmlns:sys="clr-namesapce:System">
    <local:Student id="6"/>
>

将System名称空间引入XAML代码并并映射为sys名称空间。

资源

资源是可以在应用中的不同位置重复使用的对象。

微软示例

每个框架级元素(FrameworkElement 或 FrameworkContentElement)都具有 Resources 属性。该属性是包含已定义资源的 ResourceDictionary 类型。 你可以在任何元素上定义资源,例如 Button。 但是,最常在根元素上定义资源,本示例中的根元素为 Window。

静态资源和动态资源

被标记为”StaticResources”的资源运行期间改变内容并不能生效。

被标记为”DynamicResources”的资源运行期间改变内容可以及时生效。

<Button Content="StaticResources str1"/>
<Button Content="DynamicResources str2"/>
private void update() {
    this.Resources["str1"] = new TextBlock() {Text = "changed content";};
    this.Resources["str2"] = new TextBlock() {Text = "changed content";};
}

当update调用的时候, 只有button1改变了content。

数据模板

微软文档 说的还挺好的。