【问题标题】:Windows 8.1 application and Top vs. Bottom edge gesturesWindows 8.1 应用程序和顶部与底部边缘手势
【发布时间】:2014-11-06 12:18:13
【问题描述】:

我正在实施 Windows 8.1。应用程序,我想在边缘手势上显示一些菜单。在顶部边缘手势菜单 A 和底部手势菜单 B。我发现这可能是不可能的。

在下面的代码中

void EdgeGesture_Completed(object sender, EdgeGestureEventArgs e)
{
    if (e.Kind == EdgeGestureKind.Touch)
    {
        Scenario1OutputText.Text = "Invoked with touch.";
    }
    else if (e.Kind == EdgeGestureKind.Keyboard)
    {
        Scenario1OutputText.Text = "Invoked with keyboard.";
    }
    else if (e.Kind == EdgeGestureKind.Mouse)
    {
        Scenario1OutputText.Text = "Invoked with right-click.";
    }
}

我们可以识别顶部/底部菜单是否由触摸、键盘或右键单击调用,但 EdgeGestureEventArgs 不包含任何其他信息。

您知道如何识别边缘手势吗?我的意思是,如果它是顶部或底部边缘手势。

【问题讨论】:

  • 在 edgie 事件之后你能看到/处理其他的触摸事件吗?也许您可以在它来自触摸时忽略该事件,但处理它之后的第一个触摸事件,它可能更接近顶部或底部边缘?

标签: c# xaml windows-runtime touch


【解决方案1】:

标准行为是同时显示顶部和底部。如果你使用内置的 AppBar 控件,那么你会自动得到它。

如果您想分离顶部和底部的应用栏,那就比较麻烦了,您需要自己实现。没有任何直接的方法可以判断 edgie 是从顶部触发还是从底部触发,但您可以跟踪 PointerEvents 以及 EdgeGestureKind 是否为触摸,然后您可以根据指针位置进行猜测。

如果 edgie 是由键盘或鼠标触发的,则没有区别,因为这些手势与位置无关。

另请注意,Windows 10 Technical Preview 中的标准 appbar 和 charms 行为与 Windows 8.1 中的不同,因此如果您自己实现它,您的应用行为最终可能会比您预期的更偏离标准。

【讨论】:

  • 非常感谢您的回答。可能我只会使用我自己实现的 TopAppBar 和底部应用程序栏,并且显示将由来自应用程序的其他手势或事件触发。这种同时显示 TopAppBar 和 BottomAppBar 的行为对我来说真的很奇怪和令人失望。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 2014-01-28
  • 2014-10-10
  • 2020-03-04
  • 1970-01-01
  • 1970-01-01
  • 2018-10-14
相关资源
最近更新 更多