[英]Making swipe work for a pivot control with embedded WebBrowser on Windows Phone 8.0
我希望我的应用程序在每个PivotItem
中都具有一个带有WebBrowser
控件的Pivot
控件。 问题在于,无法滑动到下一个PivotItem
,因为它会导致网页水平滚动。 但是,网页是响应式的,不需要水平滚动,因此我希望水平滑动来产生枢轴开关。 能做到吗? 如果我无法使用Pivot
控件,建议使用哪种WebControl
页上的WebControl
来实现页面切换的方法是什么? iOS / Android的顶级菜单?
是的,这是可能的,但是几乎不需要任何解决方法,因为Webbrowser会首先处理该事件,而您的Pivot可能对此一无所知。 为此,您可以使用Touch
及其事件FrameReported
。 简单的代码如下所示:
public MainPage()
{
InitializeComponent();
Touch.FrameReported += Touch_FrameReported;
}
TouchPoint first;
private void Touch_FrameReported(object sender, TouchFrameEventArgs e)
{
TouchPoint mainTouch = e.GetPrimaryTouchPoint(myWebBrowser);
if (mainTouch.Action == TouchAction.Down)
first = mainTouch;
else if (mainTouch.Action == TouchAction.Up)
{
if (mainTouch.Position.X - first.Position.X < 0)
MessageBox.Show("Next item.");
//myPivot.SelectedIndex++;
if (mainTouch.Position.X - first.Position.X > 0)
MessageBox.Show("Previous item.");
//myPivot.SelectedIndex--;
}
}
如您所见-我记得用户开始移动的位置,然后当他释放触摸时-我更改了myPivot.SelectetIndex。 希望这有所帮助。 您也可以尝试使用TouchPanel
,但是我认为这样会更简单(如果足够的话)。
如果您要禁用某些手势,例如,下面的代码。 我仅启用了HorizontalDrag-因此不会触发以进行缩放。 当然,公差不应该为0,您必须定义最适合您的App。
// in MainPage() constructor
TouchPanel.EnabledGestures = GestureType.HorizontalDrag;
private void Touch_FrameReported(object sender, TouchFrameEventArgs e)
{
TouchPoint mainTouch = e.GetPrimaryTouchPoint(myMap);
if (mainTouch.Action == TouchAction.Down)
first = mainTouch;
else if (mainTouch.Action == TouchAction.Up && TouchPanel.IsGestureAvailable)
{
if (mainTouch.Position.X - first.Position.X < 0)
MessageBox.Show("Next item.");
//myPivot.SelectedIndex++;
if (mainTouch.Position.X - first.Position.X > 0)
MessageBox.Show("Previous item.");
//myPivot.SelectedIndex--;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.