我正在设计一个UWP,我想添加一个滑动手势来打开我的汉堡菜单。但是,在我的一个页面中,我添加了一个数据透视表,然后滑动手势不会打开菜单,而是切换数据透视表。
如何让他们在同一页面上活着?
这是关于滑动手势的代码: (thx to http://blog.csdn.net/github_36704374/article/details/59580697)
namespace Humberger
{
public sealed partial class MainPage : Page
{
private double x = 0; //用来接收手势水平滑动的长度
public MainPage()
{
this.InitializeComponent();
this.ManipulationMode = ManipulationModes.TranslateX; //设置这个页面的手势模式为横向滑动
this.ManipulationCompleted += The_ManipulationCompleted; //订阅手势滑动结束后的事件
this.ManipulationDelta += The_ManipulationDelta; //订阅手势滑动事件
}
//手势滑动中
private void The_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
x += e.Delta.Translation.X; //将滑动的值赋给x
}
//手势滑动结束
private void The_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
if (x > 100) //判断滑动的距离
MySplit.IsPaneOpen = true; //打开汉堡菜单
if (x < -100)
MySplit.IsPaneOpen = false; //关闭汉堡菜单
x = 0; //清零x,不然x会累加
}
//汉堡菜单点击事件
private void Humberger_Click(object sender, RoutedEventArgs e)
{
MySplit.IsPaneOpen = !MySplit.IsPaneOpen;
}
}
}
答案 0 :(得分:4)
是的,Pivot
或Hub
控件会吞下所有水平用户输入。但是,如果你只是想从边缘滑动以带出菜单的抽屉,这就是一个技巧 -
为
Pivot
提供1px
左边距。
这样做将允许主机元素在从设备边缘滑动时接收触摸操作。
几年前我在这个video做了一件事,其中来自Telerik的Pivot
和RadSideDrawer
。此RadSideDrawer
控件现在作为Telerik UI for UWP。
我还推出了自己的SwipeableSplitView
控件,解释为here。
希望这有帮助!