2011-03-10 14 views
5

Pregunta: Obtener desplazarse caso de ScrollViewer en Windows PhoneConsigue desplazarse caso de ScrollViewer en Windows Phone

Tengo un ScrollViewer así:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <ScrollViewer x:Name="MyScroller"> 
     <StackPanel> 
      <!-- ... --> 
     </StackPanel> 
    </ScrollViewer> 
</Grid> 

necesito el caso de cuando se produce el desplazamiento de MyScroller:

// MyScroller.Scroll += // <-- "Scroll" event does not exist on ScrollViewer 
MyScroller.MouseWheel += MyScroller_MouseWheel; // Does not fire on scroll 
MyScroller.ManipulationDelta += MyScroller_ManipulationDelta; // Fires for pinch-zoom only 

Respuesta

1

No es así de simple, pero hay un par de mecanismos de detección de desplazamiento escritos en esta pregunta:

WP7 Auto Grow ListBox upon reaching the last item

Básicamente echar un vistazo a la forma en que se llama OnListVerticalOffsetChanged y usado.

+0

Gracias, esto va mucho más allá de lo que necesito. Espero que funcione sin el Listbox, sin embargo, porque he tenido problemas de rendimiento al usar Listboxes con imágenes y mi diseño personalizado – Subcreation

+0

Si está utilizando algo más que un ListBox - ega ScrollViewer y un ItemsControl con un StackPanel, tenga cuidado con la cantidad memoria que utiliza su aplicación para representar la interfaz de usuario: es posible que necesite usar VirtualisingStackPanel para evitar el uso excesivo de la memoria. – Stuart

12

incendios MouseMove cuando se desplaza ScrollViewer:

public MainPage() 
{ 
    InitializeComponent(); 

    MyScroller.MouseMove += MyScroller_MouseMove; 
} 

void MyScroller_MouseMove(object sender, MouseEventArgs e) 
{ 
    throw new NotImplementedException();// This will fire 
} 

No es intuitivo, ya que se denomina evento de "mouse" y no hay mouse en el teléfono. El punto de contacto se mueve, sin embargo, en relación con el contenedor ScrollViewer, que es cómo puede manejar el desplazamiento.

0

Con Mango, puede ver el estado visual "ScrollStates" para cambiar como se describe en este sample project.