按钮悬停效果和触摸 (WPF)
Posted
技术标签:
【中文标题】按钮悬停效果和触摸 (WPF)【英文标题】:Button hover effect and touch (WPF) 【发布时间】:2013-07-11 05:10:26 【问题描述】:我有一个带有Button
的 WPF 桌面应用程序。当我在普通 PC 上运行它并将鼠标光标移到按钮上时,它变成蓝色(默认 Windows 主题)。当我将光标移出时,按钮再次变灰。很正常的行为。
但是当我在 Windows 8 平板电脑上运行它时,会发生以下情况:我触摸 Button
,它变成蓝色。然后我向上移动手指,但按钮保持蓝色。没有MouseLeave
事件。在单击屏幕上的其他位置之前,我会看到蓝色按钮。
有什么办法可以防止这种情况发生吗?我知道我可以移除整个悬停效果,但我不想这样做,除非有其他方法。
【问题讨论】:
【参考方案1】:检查是否关注 (http://blakenui.codeplex.com/) 将帮助您处理问题
WPF: Is there a possibility to "route" ordinary mouse events to touch events in Windows 7
【讨论】:
【参考方案2】:我能够通过使用以下使用视觉状态的行为来解决这个问题:
public class TouchDeviceMouseOverUIElementFixBehavior : Behavior<UIElement>
protected override void OnAttached()
AssociatedObject.StylusUp += AssociatedObject_StylusUp;
protected override void OnDetaching()
AssociatedObject.StylusUp -= AssociatedObject_StylusUp;
private void AssociatedObject_StylusUp(object sender, StylusEventArgs e)
var control = sender as FrameworkElement;
if (control != null)
if (!VisualStateManager.GoToElementState(control, "Normal", true))
VisualStateManager.GoToState(control, "Normal", true);
【讨论】:
【参考方案3】:您可以通过删除 WPF 中的默认鼠标悬停选项来做到这一点。它对我来说非常好。
这是我找到answer的来源
【讨论】:
以上是关于按钮悬停效果和触摸 (WPF)的主要内容,如果未能解决你的问题,请参考以下文章