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を含む a Button の単純なControlTemplateオブジェクトを作成します。 また、状態と状態を VisualStateGroup 定義する名前付き CommonStates
が MouseOver
含 Normal
まれています。 また 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 つには、状態、、Normal
、Pressed``MouseOver
および Disabled
. もう 1 つには、状態、 Checked
、、 UnChecked
および Indeterminate
. 状態CheckBoxとUnChecked
同時に指定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 オブジェクトのコレクションを取得します。 |
メソッド
events
CurrentStateChanged |
コントロールが別の状態に遷移した後に発生します。 |
CurrentStateChanging |
コントロールが別の状態への遷移を開始したときに発生します。 |