2

GridView (Metro スタイルの XAML アプリ) で、タイルの 1 つに VCR スタイルの「一時停止」アイコンを配置したいと考えています。しかし、ユーザーがボタンの上に (マウスで) ホバーするか、ボタンを押すと、アイコンが「再生」に変わります。(今は一時停止していますが、ボタンを押すと再生が開始されるという考えを補強するために、微妙な手がかりを与えたいと思います。)

マウスがタイルの上にあるかどうか、およびタイルが押されているかどうかを検出して、タイルの外観を変更するにはどうすればよいですか?

理想的には、タイルの VisualStateManager にフックしたいと思います。しかし、私はまだ VisualStateManager の初心者であり、ItemTemplate を編集しているときに、利用可能な視覚的な状態が表示されません。(Blend の "States" ドッキング ウィンドウは空です。)

ItemContainerTemplate のコピーを作成して編集すると、タイルの視覚的な状態を取得できます。しかし、それは信じられないほどやり過ぎのようです。これは、XAML の連なりに連なりを追加します (これは、あらゆる場所の任意のタイルでサポートされている機能の最後のビットをすべて複製することを意味するためです)。つまり、Microsoft が Windows 8 の出荷前に何らかの変更を加えた場合、私は変更を最初からやり直さなければならないということです。

「ポインターオーバー」および「押された」状態でタイルの外観を変更する軽量な方法はありますか?

4

1 に答える 1

0

いいえ。残念ながら、コントロールの動作を変更したい場合は、テンプレートをオーバーライドする必要があります。テンプレートのルックアンドフィールを変更するために、あなたが説明したことを正確に行いました。首が痛いです。

「Xaml を使用すると、信じられないほど難しいことを信じられないほど簡単に実行でき、信じられないほど簡単なことを実行するのが信じられないほど難しい」とどこかで読みました。これは私の経験をほぼ要約しています。

申し訳ありませんが、より良いニュースをお届けできませんでした。

于 2012-09-13T15:25:42.550 に答える