XAML的对象元素2

使用内容语法设置属性

  • 核心规则:直接在对象元素节点内容(标签内部)中设置属性值,相当于把该属性的值看做当前对象的内容。内容可以是一个或多个独立的 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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注