Поделиться через


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 объекта . Один содержит состояния , NormalMouseOver, Pressedи Disabled. Другой содержит состояния , CheckedUnCheckedи 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

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

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