次の方法で共有


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含む のButton単純な ControlTemplate を作成します。 また、 と の状態をVisualStateGroup定義する という名前CommonStatesの もNormalMouseOver含まれています。 VisualStateGroupには、 VisualTransition の上にマウス ポインターを移動したときに、 Grid が緑から赤に変わるまで 1/5 秒かかることを指定する も含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 2 つの状態は、それが押されたとき () と、それが ("Pressed") でない"Normal"場合に対応します。

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

オブジェクトは任意の要素に追加 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)

イベント

CurrentStateChanged

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

CurrentStateChanging

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

適用対象