Windows runtime 使用一个情节提要将多个控件作为目标,以更改快照视图状态的样式
我有一个用于Windows应用商店应用程序的XAML页面,在一个网格中有十几个按钮。它们都定义了相同的样式。例如Windows runtime 使用一个情节提要将多个控件作为目标,以更改快照视图状态的样式,windows-runtime,winrt-xaml,Windows Runtime,Winrt Xaml,我有一个用于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="{StaticReso
<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}"/>
<!-- ... -->
当页面从全屏横向视图状态切换到Snapsed时,我想使用故事板将所有这些按钮的样式从PadButtonStyle更改为SnapsedPadButtonStyle
使用类似下面的方法我可以做到这一点,但我需要为每个按钮创建一个ObjectAnimationUsingKeyFrames
<VisualState x:Name="Snapped">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="btn1" Storyboard.TargetProperty="Style">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPadButtonStyle}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
是否有某种方法可以集体更改所有按钮的样式,而不单独引用每个按钮?我仍在寻找一种方法,将故事板应用于控件集合 但是,我突然想到,更好的解决方案是创建一个完全独立的网格,只包含快照视图所需的控件,然后直接在XAML中应用所需的样式
然后,我需要在快照的VisualState中做的就是折叠一个网格,并使另一个可见。它在XAML中需要更多的控件,但大大降低了情节提要的要求。也许您可以命名情节提要,并使用代码隐藏添加对象动画?但我知道这有点难看:/I如果需要,我愿意使用代码。我希望我能在XAML中做一些声明性的事情。例如,所有具有样式A的对象在捕捉时都具有样式B。