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
VisualStateGroup объект, определяющий MouseOver
и 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 объектов. Содержит 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.GroupName VisualStateGroup.
Дополнительные сведения об использовании VisualStateGroup объектов в элементе ControlTemplateуправления см. в разделе "Настройка внешнего вида существующего элемента управления путем создания элемента управления 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 |
Происходит, когда элемент управления начинает переход в другое состояние. |