Setter.Value 属性

定义

获取或设置要应用于 Setter 指定的属性的值。

public:
 property Platform::Object ^ Value { Platform::Object ^ get(); void set(Platform::Object ^ value); };
IInspectable Value();

void Value(IInspectable value);
public object Value { get; set; }
var object = setter.value;
setter.value = object;
Public Property Value As Object
<Setter ...>
  <Setter.Value>
    objectValue
  </Setter.Value>
</Setter>
- or -
<Setter Value="attributeValue"/>
-or-
<Setter Value="extensionUsage"/>

属性值

Object

Platform::Object

IInspectable

要应用于 Setter 指定的属性的值。

注解

从 XAML 语法可以看出,可通过多种方式在 XAML 中为 Setter 指定值:

  • 作为属性,使用字符串值。 对于简单情况,此类字符串值可以隐式转换为特定于属性的类型,例如设置数值、枚举中的命名值或统一资源标识符 (URI) 。
  • 作为在 XAML 对象元素语法中声明的完整新对象,并且对象元素嵌套在属性元素用法中。
  • 作为引号内具有 {StaticResource} 标记扩展 用法的属性。 通常,属性的值类型决定了哪种语法是合适的。 有关 XAML 用法的详细信息,请参阅 XAML 概述XAML 语法指南。 可以将属性语法用于大多数 XAML UI 属性,而专门要求使用属性元素或资源引用的 UI 属性则不太常见。 如果这些值由多个样式或属性共享,则即使字符串或数值也适合使用 {StaticResource} 标记扩展

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

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

样式和模板

可以使用 Style 中的 Setter 将值应用于任何依赖属性。 但是,它是控件派生类的 Template 属性的 Setter,它构成了典型 Style 中的大多数 XAML 标记。 具有 Property="Template"的 Setter 的值几乎总是指定为包含 ControlTemplate 对象元素的属性元素。

使用 Style 定义控件模板时,Style 元素的 TargetType 及其 Control.Template setter 的 ControlTemplate 元素的 TargetType 应始终使用相同的值。

模板资源库为应用该模板的控件实例定义基本模板 UI 定义。 它还包含控件的视觉状态以及其他基于状态的 UI 定义,例如默认主题切换。 对于复杂控件(如 ListBox),默认模板 Style 和中的 ControlTemplate 可以包含数百行 XAML。 有关 Style 在控件模板化方案中的作用的详细信息,请参阅 快速入门:控件模板

适用于