Windows手机 - 避免滚动放置在滚动查看器中的Web浏览器控件

时间:2013-05-28 08:28:00

标签: scroll windows-phone-8 webbrowser-control windows-phone scrollviewer

我必须在Windows Phone应用程序中显示 Web浏览器中的滚动查看器,并满足以下要求:

  1. 网页浏览器高度应根据其内容调整
  2. 网页浏览器滚动禁用,(当用户在网络浏览器中滚动时,应滚动查看器滚动)
  3. 网络浏览器可以在其内容中进行缩放和导航到链接

    我该如何实现?非常感谢任何链接或样品。

2 个答案:

答案 0 :(得分:1)

我正在使用这样的代码。将事件附加到浏览器控件树中的Border元素(我使用Linq到Visual Tree - http://www.scottlogic.co.uk/blog/colin/2010/03/linq-to-visual-tree/)。

        Browser.Loaded += 
            (s,e)=>
                {
                    var border = Browser.Descendants<Border>().Last() as Border;

                    if (border != null)
                    {
                        border.ManipulationDelta += BorderManipulationDelta;
                        border.ManipulationCompleted += BorderManipulationCompleted;
                        border.DoubleTap += BorderDoubleTap;
                    }
                };

我正在使用的更多实现是防止捏合和缩放,这是你想要工作的东西。虽然这可以帮助你朝着正确的方向发展。

private void BorderDoubleTap(object sender, GestureEventArgs e)
{
    e.Handled = true;
}

private void BorderManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
    // suppress zoom
    if (Math.Abs(e.DeltaManipulation.Scale.X) > 0.0||
        Math.Abs(e.DeltaManipulation.Scale.Y) > 0.0)
        e.Handled = true;
}

private void BorderManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
    // suppress zoom
    if (Math.Abs(e.FinalVelocities.ExpansionVelocity.X) > 0.0 ||
        Math.Abs(e.FinalVelocities.ExpansionVelocity.Y) > 0.0)
        e.Handled = true;
}

答案 1 :(得分:1)

在Mark的指示下,我使用了

private void Border_ManipulationDelta(object sender,
                                              System.Windows.Input.ManipulationDeltaEventArgs e)
        {

            e.Complete();
            _browser.IsHitTestVisible = false;

        }