2013-03-01 22 views
5

Chcę kontrolować podwójne dotknięcie powiększenia w systemie Windows 8 kontroli przeglądarki internetowej, ale mógłbym złapać podwójne dotknięcie zdarzenia w przeglądarce internetowej. Nie mogłem również określić skalowania za pomocą atrybutów metatagu, ponieważ strona, którą wyświetlałem, pochodzi z trzeciej strony, nie mogłem również edytować strony HTML. Każdy miał taki problem, to oczywiste, że nie mogłem w stanie odzyskać od tego więcej niż 2 dni, żadnych rozwiązań, każda pomoc będzie bardzo ceniona!Sterowanie przeglądarką Windows Phone 8

Pozdrawiam, Mawy,

+0

Czy możesz być bardziej konkretny? Co dokładnie chcesz osiągnąć po wydarzeniu DoubleTap? Wypalanie zdarzenia z dwukrotnym dotknięciem na kontrolce przeglądarki zazwyczaj powoduje pomniejszenie i domyślnie dopasowuje treść do widocznego obszaru. – halil

Odpowiedz

2

Witam to jest mój kod zatrzymać przewijanie, powiększanie i double tap to działa dobrze w moim projekcie z Windows Phone 8 i 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 

dla tego kodu wymaga jednej klasy C#, którą publikuję: here