VisualStateGroup クラス

定義

一度に 1 つしか選択できない 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
継承
属性

次の例では、1 つGridを含む a Button の単純なControlTemplateオブジェクトを作成します。 また、状態と状態を VisualStateGroup 定義する名前付き CommonStatesMouseOverNormal まれています。 また VisualStateGroup 、ユーザーがマウス ポインターを VisualTransition 上に移動したときに緑から赤に変わるのに 1/2 秒 Grid かかることを指定する Buttona もあります。

<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 コレクションが含まれています。 A VisualState には、コントロールが特定の Storyboard 状態のときにコントロールの外観がどのように変化するかを指定するオブジェクトのコレクションが含まれます。 たとえば、押 Button された場合と押されていない場合の外観が若干異なる場合があります。 定義が Button () 押されたとき"Pressed"と () でない"Normal"場合に対応する 2 つの状態。

コントロールに追加 VisualState するには、コントロールに VisualStateManager.VisualStateGroups 添付プロパティを設定します。 相互に排他的な状態を同じ VisualStateGroupに配置します。 たとえば、 CheckBox 2 つの VisualStateGroup オブジェクトがあります。 1 つには、状態、、NormalPressed``MouseOverおよび Disabled. もう 1 つには、状態、 Checked、、 UnCheckedおよび Indeterminate. 状態CheckBoxUnChecked同時に指定MouseOverできますが、同時にMouseOver状態とPressed状態にすることはできません。

任意の要素にオブジェクトを追加 VisualState できますが、他のユーザー Controlが . を使用 ControlTemplateするカスタム コントロールを作成する場合は、そのクラス定義に追加することで、コントロールを含めることができる状態を TemplateVisualStateAttribute 指定できます。 その後、コントロールの新 ControlTemplate しいオブジェクトを作成するすべてのユーザーが、テンプレートにオブジェクトを追加 VisualState できます。 TemplateVisualStateAttributeこれにより、Visual StudioやBlend for Visual Studioなどのデザイナー ツールでコントロールの状態を公開できます。 同じ状態は同じTemplateVisualStateAttribute.GroupNameVisualStateGroupに属します。

オブジェクトの使用方法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)

指定した依存関係プロパティの値を強制します。 これは、呼び出し元の DependencyObject の依存関係プロパティのプロパティ メタデータで指定されている CoerceValueCallback 関数を呼び出すことによって実現されます。

(継承元 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)

events

CurrentStateChanged

コントロールが別の状態に遷移した後に発生します。

CurrentStateChanging

コントロールが別の状態への遷移を開始したときに発生します。

適用対象