VisualStateGroup Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Содержит взаимоисключающие VisualState объекты и VisualTransition объекты, которые используются для перемещения из одного состояния в другое.
public ref class VisualStateGroup : System::Windows::DependencyObject
[System.Windows.Markup.ContentProperty("States")]
[System.Windows.Markup.RuntimeNameProperty("Name")]
public class VisualStateGroup : System.Windows.DependencyObject
[<System.Windows.Markup.ContentProperty("States")>]
[<System.Windows.Markup.RuntimeNameProperty("Name")>]
type VisualStateGroup = class
inherit DependencyObject
Public Class VisualStateGroup
Inherits DependencyObject
- Наследование
- Атрибуты
Примеры
В следующем примере создается простой ControlTemplate объект, Button содержащий один Grid. Он также содержит именованный CommonStatesобъект, определяющий VisualStateGroupMouseOver и Normal состояния. Также VisualStateGroup имеется значение VisualTransition , указывающее, что для изменения с зеленого на красный цвет требуется одна половина секунды Grid , когда пользователь перемещает указатель мыши на указатель Buttonмыши.
<ControlTemplate TargetType="Button">
<Grid >
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<!--Take one half second to trasition to the MouseOver state.-->
<VisualTransition To="MouseOver"
GeneratedDuration="0:0:0.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal" />
<!--Change the SolidColorBrush, ButtonBrush, to red when the
mouse is over the button.-->
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="ButtonBrush"
Storyboard.TargetProperty="Color" To="Red" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.Background>
<SolidColorBrush x:Name="ButtonBrush" Color="Green"/>
</Grid.Background>
</Grid>
</ControlTemplate>
Комментарии
Каждый VisualStateGroup содержит коллекцию VisualState объектов. A VisualState содержит коллекцию Storyboard объектов, которые указывают, как внешний вид элемента управления изменяется, когда элемент управления находится в определенном состоянии. Например, Button может быть немного отличается внешний вид при нажатии, чем при нажатии. Два состояния, Button которые определяются, когда она нажимается ("Pressed") и когда она не ("Normal").
Вы добавляете VisualState в элемент управления, задав присоединенное VisualStateManager.VisualStateGroups свойство элемента управления. Вы ставите состояния, которые взаимоисключают друг друга в одном и том же VisualStateGroup. Например, у него CheckBox есть два VisualStateGroup объекта. Один содержит состояния, Normal, MouseOver, Pressedи Disabled. Другой содержит состояния, Checked, UnCheckedи Indeterminate. Это CheckBox может быть в состояниях MouseOver и UnChecked одновременно, но оно не может находиться в MouseOver и Pressed то же время.
Несмотря на то что вы можете добавлять VisualState объекты в любой элемент, они особенно полезны для того, чтобы другие могли переопределить визуальное поведение Controlэлемента. При создании пользовательского элемента управления, использующего объект ControlTemplate, можно указать, какие состояния можно включить, добавив TemplateVisualStateAttribute его определение класса. Затем любой пользователь, создающий новый ControlTemplate элемент управления, может добавлять VisualState объекты в шаблон. Средства TemplateVisualStateAttribute конструктора, такие как Visual Studio и Blend для Visual Studio, позволяют предоставлять состояния элемента управления. Государства с одинаковыми относятся к одному и тому же TemplateVisualStateAttribute.GroupNameVisualStateGroup.
Дополнительные сведения об использовании VisualStateGroup объектов в элементе ControlTemplateуправления см. в статье "Создание шаблона для элемента управления". Дополнительные сведения о создании элементов управления, использующих этот VisualStateManagerэлемент управления, см. в разделе "Создание элемента управления с настраиваемым внешним видом".
Свойство Transitions содержит VisualTransition объекты, применяемые при переходе элемента управления между состояниями, определенными в элементе VisualStateGroupуправления.
Конструкторы
| Имя | Описание |
|---|---|
| VisualStateGroup() |
Инициализирует новый экземпляр класса VisualStateGroup. |
Свойства
| Имя | Описание |
|---|---|
| CurrentState |
VisualState Возвращает значение, которое в настоящее время применяется к элементу управления. |
| DependencyObjectType |
Возвращает объект DependencyObjectType , который упаковывает тип СРЕДЫ CLR этого экземпляра. (Унаследовано от DependencyObject) |
| Dispatcher |
Dispatcher Возвращает это DispatcherObject значение, с которым связано. (Унаследовано от DispatcherObject) |
| IsSealed |
Возвращает значение, указывающее, запечатан ли этот экземпляр (только для чтения). (Унаследовано от DependencyObject) |
| Name |
Возвращает или задает имя VisualStateGroupобъекта . |
| States |
Возвращает коллекцию взаимоисключающих VisualState объектов. |
| Transitions |
Возвращает коллекцию VisualTransition объектов. |
Методы
| Имя | Описание |
|---|---|
| CheckAccess() |
Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
| ClearValue(DependencyProperty) |
Очищает локальное значение свойства. Свойство для очистки указывается идентификатором DependencyProperty . (Унаследовано от DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Очищает локальное значение свойства только для чтения. Свойство, которое необходимо очистить, задается параметром DependencyPropertyKey. (Унаследовано от DependencyObject) |
| CoerceValue(DependencyProperty) |
Принуждает значение указанного свойства зависимостей. Это достигается путем вызова любой CoerceValueCallback функции, указанной в метаданных свойств для свойства зависимостей, так как он существует при вызове DependencyObject. (Унаследовано от DependencyObject) |
| Equals(Object) |
Определяет, эквивалентен ли предоставленный DependencyObject объект текущему DependencyObject. (Унаследовано от DependencyObject) |
| GetHashCode() |
Получает хэш-код для этого DependencyObject. (Унаследовано от DependencyObject) |
| GetLocalValueEnumerator() |
Создает специализированный перечислитель для определения того, какие свойства зависимостей имеют локальные значения для этого DependencyObject. (Унаследовано от DependencyObject) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| GetValue(DependencyProperty) |
Возвращает текущее эффективное значение свойства зависимостей для этого экземпляра DependencyObject. (Унаследовано от DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Повторно вычисляет эффективное значение для указанного свойства зависимостей. (Унаследовано от DependencyObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Вызывается при каждом обновлении эффективного значения любого свойства DependencyObject зависимостей. Определенное свойство зависимостей, которое изменилось, сообщается в данных события. (Унаследовано от DependencyObject) |
| ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если оно существует. (Унаследовано от DependencyObject) |
| SetCurrentValue(DependencyProperty, Object) |
Задает значение свойства зависимостей, не изменяя его источник значений. (Унаследовано от DependencyObject) |
| SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей, указанное его идентификатором свойства зависимостей. (Унаследовано от DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Задает локальное значение свойства зависимостей только для чтения, указанное DependencyPropertyKey идентификатором свойства зависимости. (Унаследовано от DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Возвращает значение, указывающее, должны ли процессы сериализации сериализовать значение для указанного свойства зависимостей. (Унаследовано от DependencyObject) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| VerifyAccess() |
Принудительно применяет, что вызывающий поток имеет доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
События
| Имя | Описание |
|---|---|
| CurrentStateChanged |
Происходит после перехода элемента управления в другое состояние. |
| CurrentStateChanging |
Происходит при переходе элемента управления в другое состояние. |