2014-11-05 29 views
0

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

在下面的代码

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调用不含任何其他信息来识别。

你有什么想法如何识别边缘手势?我的意思是,如果它是顶部或底部边缘手势。

+0

您可以在edgie事件之后看到/处理其他触摸事件吗?也许你可以忽略这个事件,当它接触到它时,但是处理它之后的第一个触摸事件可能会更接近顶部或底部边缘? – 2014-11-05 22:13:46

回答

1

标准行为是将顶部和底部一起显示。如果你使用内置的AppBar控件,那么你会自动得到这个。

如果你想分开顶部和底部的应用程序栏,那么它更棘手,你需要自己实现。没有任何直接的方法可以判断edgie是从顶部还是从底部触发的,但是您可以跟踪PointerEvents,并且如果EdgeGestureKind是Touch,那么您可以根据指针位置进行猜测。

如果edgie由键盘或鼠标触发,因为这些手势不依赖于位置,所以没有区别。

另请注意,Windows 10技术预览版中的标准应用栏和符号行为与Windows 8.1中的行为不同,因此如果您自己实施它,则应用程序的行为可能会远远超出您的预期。

+0

非常感谢您的回答。很可能我只会使用TopAppBar和底部应用程序栏,我将自己实现并显示将由应用程序中的某个其他手势或事件触发。关于显示TopAppBar和BottomAppBar的这种行为对我来说真的很奇怪,也令人失望。 – 2014-11-06 08:46:58

相关问题