我有一个包含WebBrowser控件的Pivot,它实际上占用了整个页面(当然,从Pivot头部开始)。
我想弄清楚如何让WebBrowser控件允许用户向左/向右滑动以激活Pivot控件。目前它只是向左/右扫描WebBrowser控件
可以这样做吗?
感谢
答案 0 :(得分:4)
答案 1 :(得分:0)
我不知道WP7 Pivot,但Pivot控件上是否有任何Preview *事件允许您处理触摸并将其标记为已处理?
答案 2 :(得分:0)
这类似于将地图放在数据透视表中 - 这里讨论了http://mine.tuxfamily.org/?p=111 - 已在很多问题中提到过 - https://stackoverflow.com/search?q=mine.tuxfamily.org
一般来说,建议似乎是基于可用性:
顺便说一句,如果您只是使用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
}
}
}
});
}
它对我有用。干杯