响应Windows 8.1应用程序中的鼠标光标位置

时间:2014-10-19 00:25:00

标签: c# .net windows-store-apps microsoft-metro windows-applications

我有一个Windows 8应用程序,我需要检测鼠标何时位于屏幕底部,因为我的应用程序有一个CommandBar,我想在鼠标位于底部时打开它。我已经有滑动手势,当用户滑动时会打开它,但现在我有一个额外的要求,即当用户没有触摸设备时,而是必须将鼠标移到屏幕底部以显示我的CommandBar。我已经习惯了WPF的MouseMoved事件风格,但遗憾的是这些事件在Metro应用程序中不可用,所以如何获取鼠标位置或者至少检测到用户已将鼠标移到屏幕底部?我试过搜索这个,但我找不到任何东西......也许我错过了什么?

2 个答案:

答案 0 :(得分:0)

正如Chue X所说,通过鼠标右键单击打开应用栏的标准方法。

Windows运行时应用程序使用指针消息进行所有指针输入:鼠标,触摸和笔都将生成PointerPressed,PointerMoved等。您可以检查指针事件args以查看它在PointerPoint.PointerDevice.PointerDeviceType中的输入类型

CoreWindow(具有完整窗口范围)和xaml UIElement(作用于元素)的Pointer事件的版本略有不同。您可以在xaml应用程序中使用。为了您的使用任何一种都可以。它们提供的信息基本相同。

响应鼠标互动(XAML)http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh994936.aspx

答案 1 :(得分:0)

以下是我用来从任何OnPointerMoved事件处理程序实现此行为的代码:

... OnPointerMoved(PointerRoutedEventArgs e)
{
    PointerPoint point = e.GetCurrentPoint(page);
    if (point.Position.Y > page.RenderSize.Height - 5)
    {
        page.MainMenu.IsOpen = true;
    }
}