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