其他分享
首页 > 其他分享> > [一] XMAL 为对象属性赋值的几种方式

[一] XMAL 为对象属性赋值的几种方式

作者:互联网

[一] XMAL 为对象属性赋值

所有内容均出自于《深入浅出WPF》一书,其作者在b站也有相关视频,本文为个人读后总结,仅供参考

Attribute: 属性,特征,泛指,抽象,行为,动词

Property: 属性,具体,名词

eg: 汽车的属性(attribute)之一是速度(Property)

1. 使用标签的 Attribute 为对象属性赋值 (标签 - 值)

 <Button Content="BT" Width="30" Height="20"/>

直接使用 Attribute = Value,简单直接,但是由于 XAML 语法限制,value 只能是字符串,出现两个问题

解决:

2. 属性 - 元素

空标签:

<Button Width="30" Height="20"/>

非空标签:

<Button Width="30" Height="20"> </Button>

**元素:**子级标签是父标签的一个元素

属性-元素:父标签下的一个子标签对应一个属性 ,以元素的形式表示实例属性

<Button Width="30" Height="20">
            <Button.Content>BT</Button.Content>
        </Button>

属性 - 元素,在对象较为复杂时使用效果最佳,可以通过嵌套降低复杂度,类似于代码中的 . 号,a.b.c.d(),如果用字符串表示,那这个字符串就相当长了

<Button Width="30" Height="20">
            <Button.Content>
                <TextBlock>
                    <TextBlock.Text>
                        hello
                    </TextBlock.Text>
                </TextBlock>
            </Button.Content>
        </Button>

3. 标记 - 扩展

前面的两种只是对属性生成新对象并赋值,如果我们需要把一个属性赋值给另一个,或者两个属性使用同一个对象等,花里胡哨的操作,那就需要 标记 - 扩展

顾名思义,标记就是对属性打个标签,表示我要使用 标记 - 扩展了,扩展就是对当前属性进行扩展,在原有基础上,模子上增删改

 <Button Width="30" Height="20" Content="{StaticResource st}"/>

规范:使用花括号表示使用标记-扩展了,内部书写对应的扩展代码,编译器会解析内部的扩展语法

content 属性接受一个字符串,{StaticResource st} 只要满足返回的是一个字符串就可以成立

可以使用的标记扩展

​ System.Windows.Media.Imaging.ColorConvertedBitmap;
​ System.Windows.Data.BindingBase;
​ System.Windows.Data.RelativeSource;
​ System.Windows.DynamicResourceExtension;
​ System.Windows.Markup.ArrayExtension;
​ System.Windows.Markup.NullExtension;
​ System.Windows.Markup.StaticExtension;
​ System.Windows.Markup.TypeExtension;
​ System.Windows.ResourceKey;
​ System.Windows.StaticResourceExtension;
​ System.Windows.TemplateBindingExtension;
​ System.Windows.ThemeDictionaryExtension;

1.标记扩展可以嵌套 {binding { binging }}

2.标记扩展可以简写

3.标记扩展类以 Extension 为后缀,使用时可以省略

标签:XMAL,标记,Windows,标签,扩展,System,赋值,属性
来源: https://blog.csdn.net/qq_42733641/article/details/115438275