【问题标题】:Changing a tile's appearance on hover or press在悬停或按下时更改磁贴的外观
【发布时间】:2012-09-13 23:25:42
【问题描述】:

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

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

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

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

有没有更轻量级的方法来改变我的磁贴在“指针悬停”和“按下”状态下的外观?

【问题讨论】:

    标签: gridview winrt-xaml visualstatemanager


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-16
      • 1970-01-01
      • 2019-09-20
      • 1970-01-01
      • 2012-11-12
      • 2020-09-03
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多