VisualStateManager VisualStateManager VisualStateManager VisualStateManager Class

定義

コントロールの状態を遷移するための状態とロジックを管理します。Manages states and the logic for transitioning between states for controls.

public ref class VisualStateManager : System::Windows::DependencyObject
public class VisualStateManager : System.Windows.DependencyObject
type VisualStateManager = class
    inherit DependencyObject
Public Class VisualStateManager
Inherits DependencyObject
継承

次の例では、作成、Rectangleを追加し、VisualStateGroupという名前のCommonStatesVisualStateManager.VisualStatesGroups添付プロパティ。The following example creates a Rectangle and adds a VisualStateGroup named CommonStates to the VisualStateManager.VisualStatesGroups attached property. 例では、定義、MouseOverNormalVisualState内のオブジェクト、 CommonStatesVisualStateGroupします。The example defines the MouseOver and NormalVisualState objects in the CommonStatesVisualStateGroup. ユーザーが経由でマウス ポインターを移動したときに、 Rectangle、変更赤から緑の 0.5 秒です。When the user moves the mouse pointer over the Rectangle, it changes from red to green over one half second. ユーザーが、四角形からマウスを移動すると、Grid赤に変更がすぐにバックアップします。When the user moves the mouse away from the rectangle, the Grid immediately changes back to red. なお、Normal状態が定義されていません、Storyboardします。Note that the Normal state does not define a Storyboard. AStoryboardため必要はないときに、Rectangleから遷移、MouseOver状態、 Normal 、状態、StoryboardMouseOverが停止しているとColorプロパティをSolidColorBrushを返します赤。A Storyboard is not required because when the Rectangle transitions from the MouseOver state to the Normal state, the Storyboard for MouseOver is stopped and the Color property for the SolidColorBrush returns to red.

<Rectangle Name="rect" 
           Width="100" Height="100"
           MouseEnter="rect_MouseEvent" 
           MouseLeave="rect_MouseEvent">
  <VisualStateManager.VisualStateGroups>
    <VisualStateGroup Name="MouseStates">
      <VisualState Name="MouseEnter">
        <Storyboard>
          <ColorAnimation To="Green" 
                          Storyboard.TargetName="rectBrush" 
                          Storyboard.TargetProperty="Color"/>
        </Storyboard>
      </VisualState>
      <VisualState Name="MouseLeave" />
      <VisualStateGroup.Transitions>
        <VisualTransition To="MouseLeave" GeneratedDuration="00:00:00"/>

        <VisualTransition To="MouseEnter" GeneratedDuration="00:00:00.5">
          <VisualTransition.GeneratedEasingFunction>
            <ExponentialEase EasingMode="EaseOut" Exponent="10"/>
          </VisualTransition.GeneratedEasingFunction>
        </VisualTransition>

      </VisualStateGroup.Transitions>
    </VisualStateGroup>
  </VisualStateManager.VisualStateGroups>

  <Rectangle.Fill>
    <SolidColorBrush x:Name="rectBrush" Color="Red"/>
  </Rectangle.Fill>
</Rectangle>

次の例では、イベント ハンドラーの呼び出しと前の例で定義されている、GoToElementState状態間を遷移するメソッド。The following example shows the event handler that is defined in the previous example and calls the GoToElementState method to transition between states. 前の例の四角形の一部であったかどうか、 ControlTemplate、例を呼び出す必要があります、GoToStateメソッド。If the rectangle in the previous example was part of a ControlTemplate, the example would have to call the GoToState method.

private void rect_MouseEvent(object sender, MouseEventArgs e)
{
    if (rect.IsMouseOver)
    {
        VisualStateManager.GoToElementState(rect, "MouseEnter", true);
    }
    else
    {
        VisualStateManager.GoToElementState(rect, "MouseLeave", true);
    }
}
Private Sub rect_MouseEvent(ByVal sender As Object, ByVal e As MouseEventArgs)
    If rect.IsMouseOver Then
        VisualStateManager.GoToElementState(rect, "MouseEnter", True)
    Else
        VisualStateManager.GoToElementState(rect, "MouseLeave", True)
    End If
End Sub

注釈

VisualStateManagerと特定の状態にあるときに、コントロールの状態が変更されたときに、コントロール、コントロールの外観の状態を指定することができます。The VisualStateManager enables you to specify states for a control, the appearance of a control when it is in a certain state, and when a control changes states. たとえば、Buttonが押されていない場合よりもそれが押されたとき、少し異なる外観があります。For example, a Button might have a slightly different appearance when it is pressed than when it is not pressed. 2 つの状態、Button定義が押されたときに対応 ("Pressed") ではない場合、("Normal")。Two states that the Button defines correspond to when it is pressed ("Pressed") and when it is not ("Normal"). によって状態にあるときにコントロールの外観が定義されている、VisualStateします。The appearance of a control when it is in a state is defined by a VisualState. AVisualStateのコレクションを含むStoryboardコントロールがその状態のときに、コントロールの外観がどのように変化するかを指定するオブジェクト。A VisualState contains a collection of Storyboard objects that specify how the control's appearance changes when the control is in that state. コントロールに設定して表示状態を追加する、VisualStateManager.VisualStateGroupsコントロールのプロパティをアタッチします。You add visual states to a control by setting the VisualStateManager.VisualStateGroups attached property on the control. VisualStateGroupのコレクションを含むVisualState相互に排他的であるオブジェクト。Each VisualStateGroup contains a collection of VisualState objects that are mutually exclusive. つまり、コントロールは常に 1 つだけ状態の各VisualStateGroupします。That is, the control is always in exactly one state of in each VisualStateGroup.

VisualStateManagerコントロールが特定の状態に入ったときに指定することもできます。The VisualStateManager also enables you to specify when a control enters a specific state. 状態の変更を呼び出す必要のあるメソッドは、シナリオによって異なります。The method that you should call to change states depends on your scenario. 使用するコントロールを作成する場合、VisualStateManagerでそのControlTemplateを呼び出し、GoToStateメソッド。If you create a control that uses the VisualStateManager in its ControlTemplate, call the GoToState method. 作成する方法の詳細については、その使用をコントロールには、VisualStateManagerを参照してください外観をカスタマイズできる作成、コントロールを持つします。For more information about how to create controls that use the VisualStateManager, see Creating a Control That Has a Customizable Appearance. 使用する場合、VisualStateManagerの外部、 ControlTemplate (を使用する場合など、VisualStateManagerで、UserControlまたは単一の要素) を呼び出す、GoToElementStateメソッド。If you use the VisualStateManager outside of a ControlTemplate (for example, if you use a VisualStateManager in a UserControl or in a single element), call the GoToElementState method. どちらの場合、VisualStateManager適切に開始および関連する状態に関連付けられているストーリー ボードを停止するために必要なロジックを実行します。In either case, the VisualStateManager performs the logic that is required to appropriately start and stop the storyboards that are associated with the involved state. たとえば、コントロールが、状態を定義するState1State2、それぞれが関連付けられているストーリー ボードを持ちます。For example, suppose that a control defines the states, State1 and State2, each of which has a storyboard associated with it. 場合は、コントロールがState1渡すState2GoToStateまたはGoToElementStateVisualStateManagerでストーリー ボードを起動State2でストーリー ボードを停止してState1します。If the control is in State1 and you pass State2 to GoToState or GoToElementState, the VisualStateManager starts the storyboard in State2 and stops the storyboard in State1.

コントロールに含まれているWindows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)を使用して、VisualStateManagerビジュアル状態を変更します。Controls that are included with Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) use the VisualStateManager to change visual states. 作成するとき、ControlTemplateに含まれているコントロールのWPFWPF、追加することができますVisualStateオブジェクトをコントロールのControlTemplateを特定の状態で、コントロールの外観を指定します。When you create a ControlTemplate for a control that is included with WPFWPF, you can add VisualState objects to the control's ControlTemplate to specify the control's appearance in a certain state. 含まれているコントロールの視覚的な状態の名前を検索するWPFWPFを参照してくださいコントロールのスタイルとテンプレートします。To find the names of the visual states for the controls that are included with WPFWPF, see Control Styles and Templates. コントロールのロジックのハンドルが他にも何もする必要はありませんので、状態を遷移を定義、 VisualState 、新しいオブジェクトControlTemplateします。The control's logic handles transitioning between states, so you do not need to do anything other than define the VisualState objects in the new ControlTemplate. 既存のコントロールのコントロール テンプレートを作成する方法の詳細については、次を参照してください。 ControlTemplate の作成による既存のコントロールの外観のカスタマイズします。For more information about how to create control templates for existing controls, see Customizing the Appearance of an Existing Control by Creating a ControlTemplate.

継承する必要がありますの状態を遷移するためのロジックを実装する場合は、 VisualStateManager、オーバーライド、GoToStateCoreメソッド、およびセット、VisualStateManager.CustomVisualStateManager添付プロパティのカスタム ロジックを使用するコントロール。If you want to implement your own logic for transitioning between states, you must inherit from VisualStateManager, override the GoToStateCore method, and set the VisualStateManager.CustomVisualStateManager attached property on the control that uses the custom logic.

コンストラクター

VisualStateManager() VisualStateManager() VisualStateManager() VisualStateManager()

VisualStateManager クラスの新しいインスタンスを初期化します。Initializes a new instance of the VisualStateManager class.

フィールド

CustomVisualStateManagerProperty CustomVisualStateManagerProperty CustomVisualStateManagerProperty CustomVisualStateManagerProperty

CustomVisualStateManager 依存関係プロパティを識別します。Identifies the CustomVisualStateManager dependency property.

VisualStateGroupsProperty VisualStateGroupsProperty VisualStateGroupsProperty VisualStateGroupsProperty

VisualStateGroups 依存関係プロパティを識別します。Identifies the VisualStateGroups dependency property.

添付プロパティ

CustomVisualStateManager CustomVisualStateManager CustomVisualStateManager CustomVisualStateManager

コントロールの状態を遷移させる VisualStateManager オブジェクトを取得または設定します。Gets or sets the VisualStateManager object that transitions between the states of a control.

VisualStateGroups VisualStateGroups VisualStateGroups VisualStateGroups

VisualStateGroup オブジェクトのコレクションを取得または設定します。Gets or sets a collection of VisualStateGroup objects.

メソッド

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. これは、呼び出し元の DependencyObject の依存関係プロパティのプロパティ メタデータで指定されている CoerceValueCallback 関数を呼び出すことによって実現されます。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)
GetCustomVisualStateManager(FrameworkElement) GetCustomVisualStateManager(FrameworkElement) GetCustomVisualStateManager(FrameworkElement) GetCustomVisualStateManager(FrameworkElement)

CustomVisualStateManager 添付プロパティを取得します。Gets the CustomVisualStateManager attached property.

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)
GetVisualStateGroups(FrameworkElement) GetVisualStateGroups(FrameworkElement) GetVisualStateGroups(FrameworkElement) GetVisualStateGroups(FrameworkElement)

VisualStateGroups 添付プロパティを取得します。Gets the VisualStateGroups attached property.

GoToElementState(FrameworkElement, String, Boolean) GoToElementState(FrameworkElement, String, Boolean) GoToElementState(FrameworkElement, String, Boolean) GoToElementState(FrameworkElement, String, Boolean)

要素を 2 つの状態の間で遷移させます。Transitions the element between two states. このメソッドを使用して、コントロールによって定義された状態ではなく、アプリケーションによって定義された状態に遷移します。Use this method to transition states that are defined by an application, rather than defined by a control.

GoToState(FrameworkElement, String, Boolean) GoToState(FrameworkElement, String, Boolean) GoToState(FrameworkElement, String, Boolean) GoToState(FrameworkElement, String, Boolean)

コントロールを 2 つの状態間で切り替えます。Transitions the control between two states. ControlTemplate を持つコントロールの状態を遷移させるには、このメソッドを使用します。Use this method to transition states on control that has a ControlTemplate.

GoToStateCore(FrameworkElement, FrameworkElement, String, VisualStateGroup, VisualState, Boolean) GoToStateCore(FrameworkElement, FrameworkElement, String, VisualStateGroup, VisualState, Boolean) GoToStateCore(FrameworkElement, FrameworkElement, String, VisualStateGroup, VisualState, Boolean) GoToStateCore(FrameworkElement, FrameworkElement, String, VisualStateGroup, VisualState, Boolean)

コントロールは 2 つの状態の間で遷移します。Transitions a control between states.

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)
RaiseCurrentStateChanged(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) RaiseCurrentStateChanged(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) RaiseCurrentStateChanged(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) RaiseCurrentStateChanged(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement)

指定された CurrentStateChanging オブジェクトで VisualStateGroup イベントを発生させます。Raises the CurrentStateChanging event on the specified VisualStateGroup object.

RaiseCurrentStateChanging(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) RaiseCurrentStateChanging(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) RaiseCurrentStateChanging(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) RaiseCurrentStateChanging(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement)

指定された CurrentStateChanging オブジェクトで VisualStateGroup イベントを発生させます。Raises the CurrentStateChanging event on the specified VisualStateGroup object.

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)
SetCustomVisualStateManager(FrameworkElement, VisualStateManager) SetCustomVisualStateManager(FrameworkElement, VisualStateManager) SetCustomVisualStateManager(FrameworkElement, VisualStateManager) SetCustomVisualStateManager(FrameworkElement, VisualStateManager)

CustomVisualStateManager 添付プロパティを設定します。Sets the CustomVisualStateManager attached property.

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)

プロパティ

DependencyObjectType DependencyObjectType DependencyObjectType DependencyObjectType

このインスタンスの CLRCLR 型をラップする DependencyObjectType を取得します。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)

適用対象