2

在 GridView(Metro 风格的 XAML 应用程序)中,我希望我的一个图块上有一个 VCR 风格的“暂停”图标。但是当用户将鼠标悬停在按钮上(用鼠标)或按下按钮时,我希望图标变为“播放”。(我想给出一些微妙的暗示来强化它现在暂停的想法,但按下按钮将开始播放。)

如何检测鼠标是否在磁贴上,以及是否按下磁贴,以便更改磁贴的外观?

理想情况下,我想连接到磁贴的 VisualStateManager。但是我还是 VisualStateManager 的新手,当我编辑我的 ItemTemplate 时,我看不到任何可用的视觉状态。(Blend 的“状态”停靠窗口为空。)

如果我制作了 ItemContainerTemplate 的副本并对其进行编辑,那么我可以获得磁贴的视觉状态。但这似乎是令人难以置信的矫枉过正。它增加了大量的 XAML(因为这意味着复制任何地方的任何图块支持的每一个功能的最后一点)。这意味着如果微软在 Windows 8 发布之前做出任何更改,我将不得不重新进行更改。

有没有更轻量级的方法来改变我的瓷砖在“指针上方”和“按下”状态下的外观?

4

1 回答 1

0

没有。遗憾的是,如果您想更改控件的行为方式,则需要覆盖模板。我已经完成了您所描述的更改模板的外观和感觉的操作。这是颈部疼痛。

我在某处读到“Xaml 使完成难以置信的困难变得异常容易,而使难以置信的简单变得异常困难”。这几乎总结了我的经验。

抱歉,我无法提供更好的消息。

于 2012-09-13T15:25:42.550 回答