使用内容语法设置属性
- 核心规则:直接在对象元素节点内容(标签内部)中设置属性值,相当于把该属性的值看做当前对象的内容。内容可以是一个或多个独立的 UI 控件对象。
- 语法特点:比属性元素语法(如
<Object.Property>...</Object.Property>)更简洁,省略了Object.Property的属性表示形式。 - 支持条件:需要控件委托特殊的属性才能支持,通常是默认内容属性(如
Child属性、Content属性)。 - 基础示例(文本控件直接以字符串作为内容):
<TextBlock>你好吗</TextBlock> - 嵌套控件示例(容器控件直接包含子控件,隐式赋值给默认属性):
<Border>
<Button>点击我把</Button>
</Border>
<StackPanel HorizontalAlignment="Left" Height="100" Margin="165,304,0,0" VerticalAlignment="Top" Width="100">
<TextBlock>1</TextBlock>
<TextBlock>2</TextBlock>
<TextBlock>3</TextBlock>
<TextBlock>4</TextBlock>
</StackPanel>Code language: HTML, XML (xml)
使用集合语法设置属性
- 核心规则:当属性的值是一个集合(多个同类对象)时,使用集合语法进行赋值。
- 适用场景:最常用于布局控件(如
Grid、StackPanel的子元素集合),或包含多个子项的复杂属性(如渐变画刷的颜色节点集合)。 - 集合语法示例(设置矩形的渐变填充,包含多个渐变停止点集合):
<Rectangle Width="200" Height="150">
<Rectangle.Fill>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Offset="0.0" Color="Coral" />
<GradientStop Offset="1.0" Color="Green" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>Code language: HTML, XML (xml)
Previous: XAML的对象元素
Next: XAML的附加属性和标记扩展