VisualStateGroup VisualStateGroup VisualStateGroup VisualStateGroup Class

Определение

Содержит взаимоисключающие объекты VisualState и объекты VisualTransition, используемые для перехода из одного состояния в другое.Contains mutually exclusive VisualState objects and VisualTransition objects that are used to move from one state to another.

public ref class VisualStateGroup : System::Windows::DependencyObject
[System.Windows.Markup.ContentProperty("States")]
[System.Windows.Markup.RuntimeNameProperty("Name")]
public class VisualStateGroup : System.Windows.DependencyObject
type VisualStateGroup = class
    inherit DependencyObject
Public Class VisualStateGroup
Inherits DependencyObject
Наследование
Атрибуты

Примеры

В следующем примере создается простой ControlTemplate Button для, который содержит один Grid.The following example creates a simple ControlTemplate for a Button that contains one Grid. VisualStateGroup Он также содержит именованный CommonStatesобъект, который определяет MouseOver состояния Normal и.It also contains a VisualStateGroup named CommonStates, which defines the MouseOver and Normal states. Также имеет значение VisualTransition , которое указывает, что для изменения с зеленого на красный Grid , когда пользователь наводит указатель Buttonмыши на объект, требуется одна половина секунды. VisualStateGroupThe VisualStateGroup also has a VisualTransition that specifies that it takes one half second for the Grid to change from green to red when the user moves the mouse pointer over the 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 коллекцию объектов.Each VisualStateGroup contains a collection of VisualState objects. Объект VisualState содержитStoryboard коллекцию объектов, определяющих изменение внешнего вида элемента управления, когда элемент управления находится в определенном состоянии.A VisualState contains a collection of Storyboard objects that specify how the control's appearance changes when the control is in a certain state. Например, при нажатии кнопки, когда она не нажата, Button может слегка отличаться внешний вид.For example, a Button might have a slightly different appearance when it is pressed than when it is not pressed. Два состояния, которые Button соответствуют определению при нажатии ("Pressed") и когда это не ("Normal").Two states that the Button defines correspond to when it is pressed ("Pressed") and when it is not ("Normal").

Добавление VisualState в элемент управления осуществляется путем VisualStateManager.VisualStateGroups установки присоединенного свойства элемента управления.You add VisualState to a control by setting the VisualStateManager.VisualStateGroups attached property on the control. Вы помещаете взаимоисключающие состояния друг VisualStateGroupв друга.You put states that are mutually exclusive to each other in the same VisualStateGroup. Например, CheckBox имеет два VisualStateGroup объекта.For example, the CheckBox has two VisualStateGroup objects. Один из них содержит состояния Normal, MouseOver Pressed,, и Disabled.One contains the states, Normal, MouseOver, Pressed, and Disabled. Другой содержит состояния, Checked UnChecked, и Indeterminate.The other contains the states, Checked, UnChecked, and Indeterminate. MouseOver UnChecked MouseOver Может находиться в состоянии и в то же время, но не может находиться в состоянии и Pressed одновременно. CheckBoxThe CheckBox can be in states MouseOver and UnChecked at the same time, but it cannot be in the MouseOver and Pressed states at the same time.

Хотя объекты можно добавлять VisualState к любому элементу, они особенно полезны для того, чтобы другие могли переопределить визуальное поведение. ControlAlthough you can add VisualState objects to any element, they are a particularly useful way to enable others to redefine the visual behavior of a Control. При создании пользовательского элемента управления, использующего ControlTemplate, можно указать, к TemplateVisualStateAttribute каким состояниям может принадлежать управление, добавив в его определение класса.If you create a custom control that uses a ControlTemplate, you can specify which states that control can be in by adding a TemplateVisualStateAttribute on its class definition. Затем любой пользователь, создающий ControlTemplate новый элемент управления, может VisualState добавлять объекты в шаблон.Then anyone who creates a new ControlTemplate for your control can add VisualState objects to the template. TemplateVisualStateAttribute Позволяет средствам конструктора, таким как Expression Blend, предоставлять состояния элемента управления.The TemplateVisualStateAttribute enables designer tools, such as Expression Blend, to expose the control's states. Состояния с одинаковыми TemplateVisualStateAttribute.GroupName принадлежат VisualStateGroupк одному и тому же.States with the same TemplateVisualStateAttribute.GroupName belong in the same VisualStateGroup.

Дополнительные сведения об использовании VisualStateGroup объектов ControlTemplateв см. в разделе Настройка внешнего вида существующего элемента управления путем создания объекта ControlTemplate.For more information about how to use VisualStateGroup objects in a ControlTemplate, see Customizing the Appearance of an Existing Control by Creating a ControlTemplate. Дополнительные сведения о создании элементов управления, использующих VisualStateManager, см. в разделе Создание элемента управления с настраиваемым внешним видом.For more information about how to create controls that use the VisualStateManager, see Creating a Control That Has a Customizable Appearance.

Свойство содержит VisualTransition объекты, которые применяются, когда элемент управления переходит между состояниями VisualStateGroup, определенными в. TransitionsThe Transitions property contains VisualTransition objects that are applied when the control transition between states that are defined in the VisualStateGroup.

Конструкторы

VisualStateGroup() VisualStateGroup() VisualStateGroup() VisualStateGroup()

Инициализирует новый экземпляр класса VisualStateGroup.Initializes a new instance of the VisualStateGroup class.

Свойства

CurrentState CurrentState CurrentState CurrentState

Получает состояние VisualState, применяемое в настоящий момент к элементу управления.Gets the VisualState that is currently applied to the control.

DependencyObjectType DependencyObjectType DependencyObjectType DependencyObjectType

Возвращает DependencyObjectType, который создает обертку для типа CLRCLR данного экземпляра.Gets the DependencyObjectType that wraps the CLRCLR type of this instance.

(Inherited from DependencyObject)
Dispatcher Dispatcher Dispatcher Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
IsSealed IsSealed IsSealed IsSealed

Получает значение, указывающее, является ли этот экземпляр в данный момент запечатанным (доступным только для чтения).Gets a value that indicates whether this instance is currently sealed (read-only).

(Inherited from DependencyObject)
Name Name Name Name

Возвращает или задает имя таблицы для объекта VisualStateGroup.Gets or sets the name of the VisualStateGroup.

States States States States

Получает коллекцию взаимоисключающих объектов VisualState.Gets the collection of mutually exclusive VisualState objects.

Transitions Transitions Transitions Transitions

Возвращает коллекцию объектов VisualTransition.Gets the collection of VisualTransition objects.

События

CurrentStateChanged CurrentStateChanged CurrentStateChanged CurrentStateChanged

Происходит после перехода элемента управления в другое состояние.Occurs after a control transitions to a different state.

CurrentStateChanging CurrentStateChanging CurrentStateChanging CurrentStateChanging

Происходит, когда элемент управления начинает переход в другое состояние.Occurs when a control starts transitioning to a different state.

Методы

CheckAccess() CheckAccess() CheckAccess() CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
ClearValue(DependencyProperty) ClearValue(DependencyProperty) ClearValue(DependencyProperty) ClearValue(DependencyProperty)

Очищает локальное значение свойства.Clears the local value of a property. Очищаемое свойство задается идентификатором DependencyProperty.The property to be cleared is specified by a DependencyProperty identifier.

(Inherited from DependencyObject)
ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey) ClearValue(DependencyPropertyKey)

Очищает локальное значение свойства, доступного только для чтения.Clears the local value of a read-only property. Очищаемое свойство задается объектом DependencyPropertyKey.The property to be cleared is specified by a DependencyPropertyKey.

(Inherited from DependencyObject)
CoerceValue(DependencyProperty) CoerceValue(DependencyProperty) CoerceValue(DependencyProperty) CoerceValue(DependencyProperty)

Приводит значение указанного свойства зависимостей.Coerces the value of the specified dependency property. Это осуществляется путем вызова какой-либо функции CoerceValueCallback, указанной в метаданных свойства зависимостей, которое существует в вызывающем объекте DependencyObject.This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Inherited from DependencyObject)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, является ли указанный DependencyObject эквивалентом текущего DependencyObject.Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Inherited from DependencyObject)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Получает хэш-код для данного объекта DependencyObject.Gets a hash code for this DependencyObject.

(Inherited from DependencyObject)
GetLocalValueEnumerator() GetLocalValueEnumerator() GetLocalValueEnumerator() GetLocalValueEnumerator()

Создает специализированный перечислитель для определения свойств зависимостей, которые локально установили значения для данного DependencyObject.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Inherited from DependencyObject)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
GetValue(DependencyProperty) GetValue(DependencyProperty) GetValue(DependencyProperty) GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей в этом экземпляре DependencyObject.Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Inherited from DependencyObject)
InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty) InvalidateProperty(DependencyProperty)

Повторно вычисляет действующее значение для указанного свойства зависимостейRe-evaluates the effective value for the specified dependency property

(Inherited from DependencyObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs) OnPropertyChanged(DependencyPropertyChangedEventArgs) OnPropertyChanged(DependencyPropertyChangedEventArgs) OnPropertyChanged(DependencyPropertyChangedEventArgs)

Вызывается каждый раз, когда обновляется действительное значение любого свойства зависимостей для данного DependencyObject.Invoked whenever the effective value of any dependency property on this DependencyObject has been updated. Конкретное свойство зависимости, которое изменилось, сообщается в данных события.The specific dependency property that changed is reported in the event data.

(Inherited from DependencyObject)
ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если таковое существует.Returns the local value of a dependency property, if it exists.

(Inherited from DependencyObject)
SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object) SetCurrentValue(DependencyProperty, Object)

Задает значение свойства зависимостей, не меняя источник значения.Sets the value of a dependency property without changing its value source.

(Inherited from DependencyObject)
SetValue(DependencyProperty, Object) SetValue(DependencyProperty, Object) SetValue(DependencyProperty, Object) SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей, указанного идентификатором этого свойства.Sets the local value of a dependency property, specified by its dependency property identifier.

(Inherited from DependencyObject)
SetValue(DependencyPropertyKey, Object) SetValue(DependencyPropertyKey, Object) SetValue(DependencyPropertyKey, Object) SetValue(DependencyPropertyKey, Object)

Задает локальное значение свойства зависимости только для чтения, определяемое идентификатором DependencyPropertyKey свойства зависимостей.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(Inherited from DependencyObject)
ShouldSerializeProperty(DependencyProperty) ShouldSerializeProperty(DependencyProperty) ShouldSerializeProperty(DependencyProperty) ShouldSerializeProperty(DependencyProperty)

Возвращает значение, которое указывает, следует ли процессам сериализации выполнять сериализацию значения для предоставленного свойства зависимостей.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Inherited from DependencyObject)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)
VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

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