0

我有一个用于 Windows 应用商店应用程序的 XAML 页面,它在网格中有十几个按钮。它们都定义了相同的样式。例如

<Button Content="1"  Name="btn1" Grid.Row="1" Grid.Column="0" Style="{StaticResource PadButtonStyle}"/>
<Button Content="2"  Name="btn3" Grid.Row="2" Grid.Column="0" Style="{StaticResource PadButtonStyle}"/>
<Button Content="3"  Name="btn4" Grid.Row="3" Grid.Column="0" Style="{StaticResource PadButtonStyle}"/>
<!-- ... -->

当页面从全屏横向视图状态切换到快照时,我想使用情节提要将所有这些按钮的样式从 PadButtonStyle 更改为 SnappedPadButtonStyle。

使用类似下面的东西我可以做到这一点,但我需要为每个按钮创建一个 ObjectAnimationUsingKeyFrames。

<VisualState x:Name="Snapped">
    <Storyboard>
            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="btn1" Storyboard.TargetProperty="Style">
                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPadButtonStyle}"/>
            </ObjectAnimationUsingKeyFrames>
    </Storyboard>
</VisualState>

有没有办法在不单独引用每个按钮的情况下共同更改所有按钮的样式?

4

1 回答 1

0

我仍在寻找一种将情节提要应用于控件集合的方法。

但是,我想到更好的解决方案是创建一个完全独立的 Grid 以仅包含捕捉视图所需的控件,然后直接在 XAML 中应用所需的样式。

然后我在 Snapped VisualState 中需要做的就是折叠一个 Grid 并使另一个可见。它需要 XAML 中的更多控件,但大大降低了情节提要要求。

于 2012-09-14T08:52:35.993 回答