使用VisualStateManager更改按钮样式

时间:2015-11-03 07:39:42

标签: xaml windows-runtime uwp blend

我正在开发通用Windows应用程序。

我想在不同的状态下更改我的按钮样式,但我无法弄清楚(我对此不熟悉)

这是我的视觉状态组

<VisualStateGroup x:Name="StartStopTimer">
    <VisualState x:Name="Start">
    </VisualState>
    <VisualState x:Name="Stop">
        <VisualState.Setters>
        </VisualState.Setters>
    </VisualState>
</VisualStateGroup>

我有两种名为StartButtonStyleStopButtonStyle的样式设置。

所以我想将按钮样式更改为StopButonStyle视觉状态中的StopStartButtonStyle视觉状态下的Start

我该怎么做?我尝试在 Expression Blend 中使用记录,但它并没有对我的视觉状态应用任何内容。

1 个答案:

答案 0 :(得分:2)

你在这里:

<VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="StartStopTimer">
            <VisualState x:Name="Start">
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TestButton"
                                                   Storyboard.TargetProperty="Style">
                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource StartButtonStyle}">
                        </DiscreteObjectKeyFrame>
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState x:Name="Stop">
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TestButton"
                                                   Storyboard.TargetProperty="Style">
                        <DiscreteObjectKeyFrame KeyTime="0"
                                                Value="{StaticResource StopButtonStyle}">
                        </DiscreteObjectKeyFrame>
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

当然,您需要在资源中定义样式,例如在页面资源中。

请不要忘记将我的回复标记为答案。