WP7 Pivot控件和WebBrowser控件

时间:2011-03-24 09:50:45

标签: c# silverlight windows-phone-7

我有一个包含WebBrowser控件的Pivot,它实际上占用了整个页面(当然,从Pivot头部开始)。

我想弄清楚如何让WebBrowser控件允许用户向左/向右滑动以激活Pivot控件。目前它只是向左/右扫描WebBrowser控件

可以这样做吗?

感谢

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

我不知道WP7 Pivot,但Pivot控件上是否有任何Preview *事件允许您处理触摸并将其标记为已处理?

答案 2 :(得分:0)

这类似于将地图放在数据透视表中 - 这里讨论了http://mine.tuxfamily.org/?p=111 - 已在很多问题中提到过 - https://stackoverflow.com/search?q=mine.tuxfamily.org

一般来说,建议似乎是基于可用性:

  • 尽量避免在PivotItem的
  • 中放置使用Touch的控件

顺便说一句,如果您只是使用Web浏览器控件来获取非常少量的静态html(因此您根本不需要任何滚动),那么您可以从Web浏览器中删除HitTesting。

答案 3 :(得分:0)

调用以下方法并将参数作为PivotControl x:name和WebBrowserControl x:name传递给此方法。

这里WebBrowserControl被放置在第二个数据透视表项中,即数据透视索引为1,我试图向左或向右滑动并分别到达数据透视索引2或1。

public static void SwipteLeftRight(Microsoft.Phone.Controls.Pivot pivotControl, Microsoft.Phone.Controls.WebBrowser webBrowserControl)        
        {
            var gesListener = GestureService.GetGestureListener(webBrowserControl);
            gesListener.Flick += ((sen, args) =>
            {
                if (args.Direction == System.Windows.Controls.Orientation.Horizontal)
                {
                    if (args.HorizontalVelocity < 0)
                    {

                        if (((Microsoft.Phone.Controls.PivotItem)(pivotControl.SelectedItem)).Header.ToString().Trim() == "Pivot Item name")
                        {
                            pivotControl.SelectedIndex = 2; //Next Pivot item
                        }
                    }
                    else if (args.HorizontalVelocity > 0)
                    {

                        if ((Microsoft.Phone.Controls.PivotItem)(pivotControl.SelectedItem)).Header.ToString().Trim() == "Pivot Item name")
                        {
                            pivotControl.SelectedIndex = 0; // Previous Pivot Item
                        }
                    }
                }
            });
        }

它对我有用。干杯