VisualState 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示控件处于特定状态时的视觉外观。
public ref class VisualState : System::Windows::DependencyObject
[System.Windows.Markup.ContentProperty("Storyboard")]
[System.Windows.Markup.RuntimeNameProperty("Name")]
public class VisualState : System.Windows.DependencyObject
[<System.Windows.Markup.ContentProperty("Storyboard")>]
[<System.Windows.Markup.RuntimeNameProperty("Name")>]
type VisualState = class
inherit DependencyObject
Public Class VisualState
Inherits DependencyObject
- 继承
- 属性
示例
以下示例在名为 CommonStates
的 Button 的 ControlTemplate 中创建 VisualStateGroup,并为状态、Normal
、Pressed
和 MouseOver
添加 VisualState 对象。
Button 还定义了一个名为“Disabled
”的状态,该状态位于 CommonStates
VisualStateGroup中,但该示例省略该状态是为了简洁起见。 有关整个示例,请参阅 通过创建 ControlTemplate自定义现有控件的外观。
<!--Define the states and transitions for the common states.
The states in the VisualStateGroup are mutually exclusive to
each other.-->
<VisualStateGroup x:Name="CommonStates">
<!--The Normal state is the state the button is in
when it is not in another state from this VisualStateGroup.-->
<VisualState x:Name="Normal" />
<!--Change the SolidColorBrush, BorderBrush, to red when the
mouse is over the button.-->
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="BorderBrush"
Storyboard.TargetProperty="Color"
To="Red" />
</Storyboard>
</VisualState>
<!--Change the SolidColorBrush, BorderBrush, to Transparent when the
button is pressed.-->
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimation Storyboard.TargetName="BorderBrush"
Storyboard.TargetProperty="Color"
To="Transparent"/>
</Storyboard>
</VisualState>
<!--The Disabled state is omitted for brevity.-->
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
注解
VisualState 指定控件处于特定状态时的外观。 例如,当按下 Button 时,其边框可能与普通颜色不同。 VisualState 类具有更改控件外观的 Storyboard 属性。 当控件进入由 VisualState.Name 属性指定的状态时,Storyboard 将开始。 当控件退出状态时,Storyboard 将停止。
VisualStateGroup.States 属性包含 VisualState 对象。 VisualStateGroup 对象添加到 VisualStateManager.VisualStateGroups 附加属性中,该属性在 FrameworkElement上定义。 可以将 VisualState 对象添加到任何 FrameworkElement,但它们通常用于 Control的 ControlTemplate。 有关如何为现有控件创建 ControlTemplate 和 VisualState 对象的信息,请参阅 通过创建 ControlTemplate自定义现有控件的外观。 有关在 ControlTemplate外部使用 VisualState 对象的示例,请参阅 VisualStateManager 类。
构造函数
VisualState() |
初始化 VisualState 类的新实例。 |
属性
DependencyObjectType |
获取包装此实例的 CLR 类型的 DependencyObjectType。 (继承自 DependencyObject) |
Dispatcher |
获取与此 DispatcherObject 关联的 Dispatcher。 (继承自 DispatcherObject) |
IsSealed |
获取一个值,该值指示此实例当前是否密封(只读)。 (继承自 DependencyObject) |
Name |
获取或设置 VisualState的名称。 |
Storyboard |
获取或设置一个 Storyboard,该值定义控件在处于由 VisualState表示的状态时的外观。 |