XAML中的属性和语法

开发工具与关键技术:WPF C#
作者:黄济民
撰写时间:2021年8月13日

一、属性设置几种方式属性:
属性是对XAML元素特征进行描述的方法;属性不允许在XAML中重复设置多次;允许在托管代码中改变元素的属性值。
设置几种方式:
使用特性语法(属性语法)
使用属性元素语法
使用内容元素语法
使用集合语法
1、使用特性语法(属性语法)
对象的属性通常可表示为对象元素的特性。 特性语法对设置的对象属性命名,后跟赋值运算符 (=)。 特性的值始终指定为包含在引号中的字符串。特性语法是最简化的属性设置语法,并且对曾使用过标记语言的开发人员而言是最直观的语法。每个属性对应一个属性值,属性值类型必须与属性匹配一个标记中可以设置对象的多个属性只有实例化对象才可以设置实例属性,格式如下:
或者

例子:
或者

2、使用属性元素语法对于对象元素的某些属性,无法使用特性语法,因为无法在特性语法的引号和字符串限制内充分地表达提供属性值所必需的对象或信息。 对于这些情况,可以使用另一个语法,即属性元素语法。属性元素开始标记的语法为 <TypeName.PropertyName>。 通常,该标记的内容是类型的对象元素,属性会将该元素作为其值。 指定内容之后,必须用结束标记结束属性元素。 结束标记的语法为 </TypeName.PropertyName>。某些属性可以使用属性元素语法来设置,格式为

<object.property>

</object.property>

例子:


<Ellipse.Fill>

</Ellipse.Fill>

<Button>
    <Button.Background>
        <SolidColorBrush Color="Blue"/>
    </Button.Background>
    <Button.Foreground>
        <SolidColorBrush Color="Red"/>
    </Button.Foreground>
    <Button.Content>This is a button</Button.Content>
</Button>
<!--例子3-->
<Button>
    <!--按钮:内容菜单-->
    <Button.ContextMenu>
        <ContextMenu>
            <MenuItem Header="1">First item</MenuItem>
            <MenuItem Header="2">Second item</MenuItem>
        </ContextMenu>
    </Button.ContextMenu> 鼠标右击!

3、使用内容元素语法 某些元素的属性支持内容元素语法,允许忽略元素的名称 实力对象会根据XAML元素中的第一个标记值来设置属性 对于大量的格式化文本,使用内容元素语法更加灵活
属性标记之间可以插入大量的文本内容
例子:
某些元素的属性支持内容元素语法,
允许忽略元素的名称 实力对象会根据XAML元素中的第一个标记值来设置属性
对于大量的格式化文本,使用内容元素语法更加灵活 属性标记之间可以插入大量的文本内容

XAML 内容属性值必须是连续的
XAML 内容属性的值必须完全在该对象元素上的任何其他属性元素之前或之后指定。 无论 XAML 内容属性的值是指定为字符串,还是指定为一个或多个对象,都是如此。
例如,以下标记不会进行分析:
I am a
<Button.Background>Blue</Button.Background> blue button

这对于本质而言是非法的,因为如果通过使用 content 属性的属性元素语法使此语法变为显式,则内容属性将设置两次:

<Button.Content>I am a</Button.Content>
<Button.Background>Blue</Button.Background>
<Button.Content>blue button</Button.Content>

例如,如果 content 属性是一个集合,并且子元素与属性元素交错在一起,则这是一个类似的非法示例:

This example
<StackPanel.Resources>

</StackPanel.Resources>
… is illegal XAML



This example
… is illegal XAML
<StackPanel.Resources>

</StackPanel.Resources>



<StackPanel.Resources>

</StackPanel.Resources>
This example
… is illegal XAML

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值