我有一个Windows应用商店的XAML页面,它在网格中有十几个按钮。它们都具有相同的样式。 E.g。
<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}"/>
<!-- ... -->
当页面从全屏横向视图状态切换为snapped时,我想使用故事板将所有这些按钮的样式从PadButtonStyle更改为SnappedPadButtonStyle。
使用类似下面的内容我可以做到这一点,但我需要为每个按钮创建一个ObjectAnimationUsingKeyFrames。
<VisualState x:Name="Snapped">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="btn1" Storyboard.TargetProperty="Style">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPadButtonStyle}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
有没有办法集体更改所有按钮的样式而不单独引用每个按钮?
答案 0 :(得分:0)
我仍在寻找将故事板应用于控件集合的方法。
然而,在我看来,更好的解决方案是创建一个完全独立的网格,仅包含捕捉视图所需的控件,然后直接在XAML中应用所需的样式。
然后我在Snapped VisualState中需要做的就是折叠一个Grid并使另一个可见。它需要在XAML中使用更多控件,但会大大降低故事板要求。