通过


Style 类

定义

启用在类型实例之间共享属性、资源和事件处理程序。

public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope
public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope, System::Windows::Markup::IQueryAmbient
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.DictionaryKeyProperty("TargetType")]
public class Style : System.Windows.Threading.DispatcherObject, System.Windows.Markup.IAddChild, System.Windows.Markup.INameScope
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.DictionaryKeyProperty("TargetType")]
public class Style : System.Windows.Threading.DispatcherObject, System.Windows.Markup.IAddChild, System.Windows.Markup.INameScope, System.Windows.Markup.IQueryAmbient
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
    interface IQueryAmbient
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface IAddChild
    interface INameScope
    interface IQueryAmbient
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope, IQueryAmbient
继承
属性
实现

示例

下面的示例演示一个样式声明,该声明将影响 Background 对象的 Control属性。

<Style x:Key="Style1">
  <Setter Property="Control.Background" Value="Yellow"/>
</Style>

若要应用上述样式,请执行以下操作:

<Label Content="Yellow Background" Style="{StaticResource Style1}" />

还可以使用 TargetType 属性将样式应用于给定类型的所有元素。 将目标类型添加到样式意味着不再需要使用语法完全限定设置 ClassName.PropertyName 的属性。 以下示例定义将应用于每个 TextBlock 元素的样式。

<Style TargetType="{x:Type TextBlock}">
  <Setter Property="FontFamily" Value="Segoe Black" />
  <Setter Property="HorizontalAlignment" Value="Center" />
  <Setter Property="FontSize" Value="12pt" />
  <Setter Property="Foreground" Value="#777777" />
</Style>

注释

许多 WPF 控件由其他 WPF 控件的组合组成,因此创建应用于类型的所有控件的样式可能会产生广泛的影响。 例如,如果创建面向控件的样式,该样式TextBlock将应用于画布中的所有TextBlock控件,即使TextBlock该样式是另一个控件的一部分,如 aListBoxCanvas

有关如何扩展或继承已定义样式的信息,请参阅 BasedOn 页面。

注解

可以在派生自FrameworkElementFrameworkContentElement. 的任何元素上设置一个 Style 。 样式通常声明为节内的 Resources 资源。 由于样式是资源,因此它们遵循适用于所有资源的相同范围规则,因此声明样式会影响应用样式的位置。 例如,如果在应用程序定义 XAML 文件的根元素中声明样式,则可以在应用程序中的任意位置使用该样式。 如果要创建导航应用程序并在某个应用程序的 XAML 文件中声明样式,该样式只能在该 XAML 文件中使用。 有关确定资源规则的范围的详细信息,请参阅 XAML 资源

样式声明由包含一个或多个Setter对象的集合的对象组成Style。 每个 Setter 都由一个和一个 PropertyValue。 该属性是样式要应用到的元素的属性的名称。 将样式声明为资源后,可以像引用任何其他资源一样引用该样式。

注释

如果 setter 集合中有多个 setter 具有相同 Property 属性值,则使用最后声明的 setter。 同样,如果在样式中和元素上直接为同一属性设置值,则直接在元素上设置的值优先。

Windows Presentation Foundation(WPF)样式和模板化模型允许维护和共享外观以及呈现和逻辑分离。 样式和模板化模型包括一套功能,可用于自定义 UI。 此套件的功能包括 Style 类和以下内容:

有关详细信息,请参阅 样式设置和模板化

构造函数

名称 说明
Style()

初始化 Style 类的新实例。

Style(Type, Style)

初始化类的新实例 Style ,以在指定的 Type 和基于指定的 Style

Style(Type)

初始化要用于指定Type类的新实例Style

属性

名称 说明
BasedOn

获取或设置一个定义的样式,该样式是当前样式的基础。

Dispatcher

获取与此DispatcherDispatcherObject关联的值。

(继承自 DispatcherObject)
IsSealed

获取一个值,该值指示样式是否为只读且无法更改。

Resources

获取或设置可在此样式范围内使用的资源集合。

Setters

获取集合 SetterEventSetter 对象。

TargetType

获取或设置此样式的用途类型。

Triggers

获取基于指定条件应用属性值的对象集合 TriggerBase

方法

名称 说明
CheckAccess()

确定调用线程是否有权访问此 DispatcherObject权限。

(继承自 DispatcherObject)
Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
GetHashCode()

返回此 Style代码的哈希代码。

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
RegisterName(String, Object)

在当前名称范围中注册新的名称对象对。

Seal()

锁定此样式和所有工厂和触发器,以便无法更改它们。

ToString()

返回一个表示当前对象的字符串。

(继承自 Object)
UnregisterName(String)

从名称范围中删除名称对象映射。

VerifyAccess()

强制调用线程有权访问此 DispatcherObject权限。

(继承自 DispatcherObject)

显式接口实现

名称 说明
IAddChild.AddChild(Object)

添加子对象。

IAddChild.AddText(String)

将节点的文本内容添加到对象。

INameScope.FindName(String)

返回具有提供标识名称的对象。

IQueryAmbient.IsAmbientPropertyAvailable(String)

查询指定的环境属性是否在当前范围内可用。

适用于

另请参阅