您可以通过使用调用控件的特定状态
VisualStateManager
。例如,如果要手动让
ToggleSwitch
转到its
On
VisualStateManager.GoToState(MyToggleSwitch, "On", true);
因为这只会设置状态
视觉上
,基础
IsOn
财产仍然是
False
实际上,通过设置
伊森
到
True
这个
在…上
状态将自动应用。这是因为在
ToggleStates
切换开关
的
default style
在…上
Storyboard
如下所示-
<VisualState x:Name="On">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="KnobTranslateTransform"
Storyboard.TargetProperty="X"
To="24"
Duration="0" />
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SwitchKnobBounds"
Storyboard.TargetProperty="Opacity">
<DiscreteObjectKeyFrame KeyTime="0" Value="1" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="OuterBorder"
Storyboard.TargetProperty="Opacity">
<DiscreteObjectKeyFrame KeyTime="0" Value="0" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SwitchKnobOn"
Storyboard.TargetProperty="Opacity">
<DiscreteObjectKeyFrame KeyTime="0" Value="1" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SwitchKnobOff"
Storyboard.TargetProperty="Opacity">
<DiscreteObjectKeyFrame KeyTime="0" Value="0" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
这些
伊森
真的
.该触发逻辑封装在内部
的代码。因此,当您想要为自定义控件定义自己的视觉状态时,需要手动连接状态属性(例如。
IsChecked
,
IsSelected
,
伊森
IsEnabled
)当其他人使用你的控件时,他们可以简单地更新它们,并期望应用正确的状态。