2013-03-01 21 views
5

Voglio controllare il doppio sfioramento del controllo del browser di Windows Phone 8, ma sono riuscito a catturare l'evento di doppio tocco nel controllo del webbrowser. Non sono riuscito a specificare il ridimensionamento utilizzando gli attributi del metatag anche, dal momento che la pagina che ho visualizzato proveniva da una terza parte non ho potuto modificare anche la pagina HTML, Qualcuno ha affrontato un problema come questo, questo è molto ovvio che non potrei in grado di recuperare da questo per più di 2 giorni, nessuna soluzione,Windows Phone 8 Controllo del browser Web

Qualsiasi aiuto sarebbe molto apprezzato!

Saluti, Mawy,

+0

Puoi essere più specifico? Che cosa stai cercando di ottenere esattamente dopo l'evento DoubleTap? Sparando un doppio tocco sul controllo del browser, normalmente zooma e adatta il contenuto all'area visibile per impostazione predefinita. – halil

risposta

2

Hi questo è il mio codice per interrompere lo scorrimento, zoom e toccare due volte si sta lavorando bene nel mio progetto con Windows Phone 8 e Windows Phone 8.1 (Silverlight)

#region stop zoom and scroll 
    public bool ScrollDisabled { get; set; } 
    private void WB_Loaded(object sender, RoutedEventArgs e) 
    { 
     var border = WB.Descendants<Border>().Last() as Border; 
     ScrollDisabled = true; 
     border.ManipulationDelta += Border_ManipulationDelta; 
     border.ManipulationCompleted += Border_ManipulationCompleted; 
     border.DoubleTap += border_DoubleTap; 
     //Debug.WriteLine("Height " + border.Child); 
     //ContentPresenter cp = border.Child as ContentPresenter; 
     //Debug.WriteLine("ContentPresenter " + cp.Height); 
     //cp.Height = 650; 
     //Debug.WriteLine("ContentPresenter " + cp.Content); 
     //Grid gd = cp.Content as Grid; 
     //Debug.WriteLine("ContentPresenter " + gd.Children.First()); 
     //border.MaxHeight = 700; 
    } 

    void border_DoubleTap(object sender, System.Windows.Input.GestureEventArgs e) 
    { 
     // suppress double-tap zoom 
     e.Handled = true; 
    } 

    private void Border_ManipulationCompleted(object sender, 
              ManipulationCompletedEventArgs e) 
    { 

     if (e.FinalVelocities.ExpansionVelocity.X != 0.0 || 
      e.FinalVelocities.ExpansionVelocity.Y != 0.0 
      ||(ScrollDisabled && e.IsInertial)) 
     { 
      e.Handled = true; 
      Debug.WriteLine("Scroll ManipulationCompleted"); 
     } 
    } 

    private void Border_ManipulationDelta(object sender, 
              ManipulationDeltaEventArgs e) 
    { 
     // suppress zoom 
     if (e.DeltaManipulation.Scale.X != 0.0 || 
      e.DeltaManipulation.Scale.Y != 0.0) 
      e.Handled = true; 

     //optionally suppress scrolling 
     if (ScrollDisabled) 
     { 
      if (e.DeltaManipulation.Translation.X != 0.0 || 
       e.DeltaManipulation.Translation.Y != 0.0) 
       e.Handled = true; 
     } 
    } 
    #endregion 

per questo codice richiede una classe C# che sto pubblicando here