0

Windows8でxaml/c#メトロスタイルアプリを開発しています。Microsoftカレンダーアプリのコンボボックススタイルをエミュレートしたいと思います(イベントの詳細ページ)。つまり、選択後に色付きのボックスと境界線の動作をするということです。視覚的な状態を使用してそれを行うにはどうすればよいですか?

4

2 に答える 2

1

これには標準のコントロールはありません。独自に作成するか、標準のコンボボックスを拡張する必要があります

于 2012-12-17T22:20:28.450 に答える
0

このようなものが動作するはずです:

<Combobox.Template>
    <ControlTemplate>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="FocusStates">
                <VisualState x:Name="Unfocused"/> <!--leave the unfocused state empty if the control already looks "unfocused" -->
                <VisualState x:Name="Focused">
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="background" Storyboard.TargetProperty="Opacity" To="0.2" Duration="0"/>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

        <Border x:Name="background" Background="Red" Opacity="0" />
        <!--other stuff-->
    </ControlTemplate>
</Combobox.Template>

Combobox コントロールは、フォーカス、プレス、マウスオーバーなどのマウス/キーボード入力に応じて、組み込みの状態を自動的に切り替えます。状態を切り替えると、現在の状態に対して定義されたストーリーボードが逆になり、新しい状態が適用されます。ここで利用可能な状態を確認できます: http://msdn.microsoft.com/en-us/library/ms752094.aspx

(コード ビハインドを使用すると、イベントなどに基づいて独自の状態を実装することもできますが、これが必要になることはめったにありません。)

于 2013-06-24T09:53:44.013 に答える