2

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

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

    我该如何实施?非常感谢任何链接或示例。

4

2 回答 2

1

我正在使用这样的代码。将事件附加到浏览器控件树中的 Border 元素(我正在使用 Linq to 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;
}
于 2013-05-30T08:05:09.210 回答
1

在马克的指导下,我使用了

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

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

        }
于 2013-06-05T10:56:01.220 回答