Setter.Property 属性

定义

获取或设置要应用 Value 的属性。

public:
 property DependencyProperty ^ Property { DependencyProperty ^ get(); void set(DependencyProperty ^ value); };
DependencyProperty Property();

void Property(DependencyProperty value);
public DependencyProperty Property { get; set; }
var dependencyProperty = setter.property;
setter.property = dependencyProperty;
Public Property Property As DependencyProperty
<Setter Property="propertyName"/>

属性值

将应用 ValueDependencyProperty。 默认值为 null

示例

此示例演示如何以 TextBlock 元素的样式使用 Setter 语句。

<StackPanel>
    <StackPanel.Resources>
        <!-- Create a Style for a TextBlock to specify that the
             Foreground equals Navy, FontSize equals 14, and
             VerticalAlignment equals Bottom. -->
        <Style TargetType="TextBlock" x:Key="TextBlockStyle">
            <Setter Property="Foreground" Value="Navy"/>
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="VerticalAlignment" Value="Bottom"/>
        </Style>
    </StackPanel.Resources>

    <!-- Apply the TextBlockStyle to 2 different TextBlocks. -->
    <TextBlock Style="{StaticResource TextBlockStyle}" Text="Hello"/>
    <TextBlock Style="{StaticResource TextBlockStyle}" Text="World"/>
</StackPanel>

还可以通过在 AttachedPropertyProvider 中指定附加的属性名称,将 setter 应用于附加的属性值。PropertyName 窗体。 例如,若要将 Setter 用于附加属性 Canvas.Left,请使用此 XAML。

<Setter Property="Canvas.Left" Value="100"/>

注解

必须在 Setter 上同时指定 Property 和 Value 属性。 否则,将引发异常 (分析异常或运行时错误,具体取决于是使用 XAML 创建 Setter 还是在代码) 中修改。

如果使用代码访问 Setter 实例,则如果父 Style 上的 IsSealed 属性的值为 true,则无法更改 Setter 实例的任何属性的值。 单个 Setter 上的 IsSealed 属性也报告了这一点。 当运行时将样式应用于 UI 元素并在 UI 中显示它们时,系统会将这些属性设置为 true 。 尝试更改密封 的 Setter 会引发运行时错误。

可以使用 Setter 设置附加属性的样式。 在这种情况下,依赖属性名称是 XAML 中的限定名称,该名称也命名附加属性的定义类型。 例如, <Setter Property="AutomationProperties.LiveSetting" Value="Polite" /> 可用于在任何控件或 UI 元素的样式中设置 AutomationProperties.LiveSetting 附加属性值。

注意

XAML 分析程序还接受包含限定类的依赖属性名称。 例如,分析程序将“Button.Background”或“Control.Background”解释为对 Button 样式中 Background 属性的引用。 不过,按类限定并不必要,这可能会导致标记混乱。 如果要从其他平台迁移 XAML,则可能会遇到或使用限定的属性名称用法。

标识依赖属性

如前所述,仅当相关属性是依赖属性时,才能使用 Setter 通过样式调整属性。 应用样式的 UI 属性几乎总是由Windows 运行时实现为依赖属性,而不是 UI 元素依赖属性的可设置属性则非常罕见。 如果要验证 Windows 运行时 属性是否为依赖属性,检查最初定义属性的类型的成员列表。 如果属性实际上是依赖属性,则依赖属性标识符也将存在于该类上,并且该标识符的名称与属性本身相同,但添加了后缀 属性 。 此依赖属性标识符是静态只读属性,通过代码在某些依赖属性方案中很有用。 例如,可以在代码中使用此类标识符值来调整现有的 Setter.Property 值,只要父样式尚未密封。

对自定义属性使用 Setter

对于你自己的自定义属性,如果想要支持样式,或者对于数据绑定或动画等其他方案,应将 属性声明为依赖属性。 如果这样做,则自定义属性也支持在具有引用自定义类型的 TargetType 的任何 Style 上设置样式。 有关详细信息,请参阅 自定义依赖属性TargetType

适用于