Setter.Property 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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"/>
属性值
将应用 Value 的 DependencyProperty。 默认值为 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。