VisualStateGroup クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
一度に 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
の もNormal
MouseOver
含まれています。
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 つは、、、、、Normal
MouseOver
Pressed
および の状態をDisabled
含みます。 もう 1 つのには、状態、、Checked
UnChecked
、および Indeterminate
が含まれています。 は CheckBox 状態 MouseOver
と UnChecked
同時に できますが、 MouseOver
と Pressed
の状態に同時にすることはできません。
オブジェクトは任意の要素に追加 VisualState できますが、他のユーザーが の視覚的な動作 Controlを再定義できるようにするために特に便利な方法です。 を使用 ControlTemplateするカスタム コントロールを作成する場合は、そのクラス定義に を追加 TemplateVisualStateAttribute することで、コントロールを使用できる状態を指定できます。 その後、コントロールの新 ControlTemplate しいを作成するすべてのユーザーが、テンプレートにオブジェクトを追加 VisualState できます。 TemplateVisualStateAttributeを使用すると、Visual Studio や Blend for Visual Studio などのデザイナー ツールでコントロールの状態を公開できます。 同じ を持つ状態は、同 TemplateVisualStateAttribute.GroupName じ VisualStateGroupに属します。
でオブジェクトを使用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 オブジェクトのコレクションを取得します。 |
メソッド
イベント
CurrentStateChanged |
コントロールが別の状態に遷移した後に発生します。 |
CurrentStateChanging |
コントロールが別の状態への遷移を開始したときに発生します。 |
適用対象
.NET