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 элементов управления в элементе Canvasуправления, он применяется ко всем TextBlock элементам управления на холсте, даже если TextBlock он является частью другого элемента управления, например ListBox.
Сведения о расширении или наследовании определенного стиля см. на BasedOn странице.
Комментарии
Можно задать Style для любого элемента, наследуемого от FrameworkElement или FrameworkContentElement. Стиль чаще всего объявляется как ресурс внутри Resources раздела. Поскольку стили являются ресурсами, они подчиняются одинаковым правилам области, которые применяются ко всем ресурсам, поэтому при объявлении стиля влияет на то, где он может быть применен. Например, если вы объявляете стиль в корневом элементе XAML-файла определения приложения, стиль можно использовать в любом месте приложения. Если вы создаете приложение навигации и объявляете стиль в одном из XAML-файлов приложения, стиль можно использовать только в этом XAML-файле. Дополнительные сведения о правилах области ресурсов см. в разделе "Ресурсы XAML".
Объявление стиля состоит из Style объекта, содержащего коллекцию одного или нескольких Setter объектов. Каждая из них Setter состоит из Property a и a Value. Свойство — это имя свойства элемента, к который будет применяться стиль. После объявления стиля в качестве ресурса его можно ссылаться так же, как и на любой другой ресурс.
Замечание
Если в коллекции setter имеется несколько наборов с одинаковым Property значением свойства, используется метод задания, объявленный последним. Аналогичным образом, если задать значение для одного и того же свойства в стиле и непосредственно в элементе, то значение, заданное в элементе, имеет приоритет непосредственно.
Модель стилей и шаблонов Windows Presentation Foundation (WPF) позволяет обслуживать и совместно использовать внешний вид, а также разделение представления и логики. Модель стилей и шаблонов включает набор функций, позволяющих настроить пользовательский интерфейс. Этот набор функций включает Style класс, а также следующее:
Дополнительные сведения см. в разделе "Стилизация" и "Шаблон".
Конструкторы
| Имя | Описание |
|---|---|
| Style() |
Инициализирует новый экземпляр класса Style. |
| Style(Type, Style) |
Инициализирует новый экземпляр класса, который будет использоваться для указанного StyleType и основанного на указанном Style. |
| Style(Type) |
Инициализирует новый экземпляр Style класса, который будет использоваться для указанного Typeобъекта. |
Свойства
| Имя | Описание |
|---|---|
| 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) |
Запрашивает, доступно ли указанное свойство окружения в текущей области. |