2

我都必须表现的Windows Phone应用的滚动观众内网页浏览器,这些要求:的Windows手机 - 避免放置滚动浏览器内的Web浏览器控件的滚动

  1. Web浏览器高度应根据其内容调整
  2. Web浏览器滚动应该禁用,(当用户滚动网页浏览器中,滚动浏览器的滚动应该发生)
  3. Web浏览器可以做捏变焦和导航到其内容中的链接

    我如何能实现呢?任何链接或样本非常感谢。

回答

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; 
} 
+0

感谢马克。是的,你的回答显示正确的方向As private void Border_ManipulationDelta(object sender,System.Windows.Input.ManipulationDeltaEventArgs e){e.Complete(); _browser.IsHitTestVisible = false; } – pg90

+0

BorderDoubleTap被解雇了吗? – vITs

1

马克的方向,我用

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

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

     }