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. Он также содержит именованный CommonStatesVisualStateGroup объект, определяющий 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

Происходит, когда элемент управления начинает переход в другое состояние.

Применяется к