0

グリッド内に12個ほどのボタンがある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に変更したいと思います。

次のようなものを使用してこれを行うことができますが、ボタンごとに1つの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

コントロールのコレクションにストーリーボードを適用する方法をまだ探しています。

しかし、スナップ ビューに必要なコントロールだけを含む完全に別のグリッドを作成し、必要なスタイルを XAML で直接適用する方が良い解決策だと思いました。

次に、Snapped VisualState で行う必要があるのは、1 つのグリッドを折りたたんで、もう 1 つのグリッドを表示することだけです。XAML でより多くのコントロールが必要になりますが、ストーリーボードの要件が大幅に軽減されます。

于 2012-09-14T08:52:35.993 に答える