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; 

     }