Style 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在类型的不同实例之间共享属性、资源和事件处理程序。
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 控件的组合组成,因此创建应用于类型的所有控件的样式可能会产生广泛的影响。 例如,如果创建一个以 中的Canvas控件为目标的TextBlock样式,该样式将应用于TextBlock画布中的所有控件,即使 TextBlock 是另一个控件的一ListBox部分,例如 。
有关如何扩展或继承定义的样式的信息,请参阅页面 BasedOn 。
注解
可以在派生自 FrameworkElement 或 FrameworkContentElement的任何元素上设置 Style 。 样式通常声明为节内 Resources 的资源。 由于样式是资源,因此它们遵循适用于所有资源的相同范围规则,因此声明样式的位置会影响可应用样式的位置。 例如,如果在应用程序定义 XAML 文件的根元素中声明样式,则可以在应用程序中的任意位置使用该样式。 如果要创建导航应用程序并在应用程序的某个 XAML 文件中声明样式,则只能在该 XAML 文件中使用该样式。 有关资源的范围规则的详细信息,请参阅 XAML 资源。
样式声明由一个 Style 对象组成,该对象包含一个或多个 Setter 对象的集合。 每个都包含 SetterProperty 和 Value。 属性是样式要应用于的元素的属性的名称。 将样式声明为资源后,可以像引用任何其他资源一样引用它。
注意
如果 setter 集合中有多个具有相同属性值的 Property setter,则使用最后声明的 setter。 同样,如果为样式中的同一属性和直接在元素上设置值,则直接在元素上设置的值优先。
Windows Presentation Foundation (WPF) 样式和模板化模型允许维护和共享外观,以及演示和逻辑的分离。 样式设置和模板化模型包括一套可用于自定义 UI 的功能。 此套件功能包括 Style 类以及以下内容:
有关详细信息,请参阅样式设置和模板化。
构造函数
Style() |
初始化 Style 类的新实例。 |
Style(Type) | |
Style(Type, Style) |
属性
BasedOn |
获取或设置一个作为当前样式的基准的已定义样式。 |
Dispatcher |
获取与此 Dispatcher 关联的 DispatcherObject。 (继承自 DispatcherObject) |
IsSealed |
获取一个值,该值指示样式是否为只读(无法更改)。 |
Resources |
获取或设置可在此样式的范围内使用的资源的集合。 |
Setters |
获取 Setter 和 EventSetter 对象的集合。 |
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) |
查询当前范围中是否有指定的环境属性。 |