He creado una aplicación de Windows 8 Store usando C#/XAML. Mi interfaz incluye una lista desplazable, que se representa utilizando un ScrollViewer
. Me gustaría poder manejar eventos de manipulación en los elementos dentro de la lista; sin embargo, establecer ManipulationMode
en cualquier elemento que no sea None
en el elemento list hace que mi lista deje de desplazarse.ScrollViewer y manejo de eventos de manipulación en elementos secundarios
Aquí es una versión simplificada de la interfaz de usuario:
<ScrollViewer>
<Border/> <!-- these contain child content -->
<Border/>
<Border/>
<!-- Set ManipulationMode on an element in order to receive manipulation events -->
<!-- This causes the scroll viewer to stop working! -->
<Border ManipulationMode="All"
ManipulationDelta="..."/>
<Border/>
<Border/>
</ScrollViewer>
entiendo que la WinRT ScrollViewer
utiliza un especial ManipulationMode
de System
por razones de rendimiento, pero me gustaría tener una lista de desplazamiento vertical, que contiene elementos que responder a la manipulación/gestos horizontales. ¿Alguien puede pensar en una solución creativa que lo haga posible?
Guau, eso es mucho trabajo. ¿Entonces básicamente se ocupa de desplazar el 'ScrollViewer' usted mismo? ¿Esto significa que también debe realizar sus propios cálculos de inercia para que se desplace de forma natural? ¿O lo hace automáticamente cuando cambia el desplazamiento vertical? – ColinE
Las manipulaciones en Júpiter tienen una inercia incorporada habilitada por defecto, por lo que se cubre. Solo debe asegurarse de no aplastar ScrollContentPresenter al final de la lista si el desplazamiento ocurre debido a la inercia. Las manipulaciones suelen ser bastante suaves, pero probablemente podría utilizar animaciones ScrollViewer como las del [WinRT XAML Toolkit] (http://bit.ly/WinRTXamlToolkit) para suavizar el desplazamiento cuando se usa la rueda de desplazamiento. Por cierto, me olvidé de mencionar que también es posible que desee manejar la configuración de enfoque en los elementos cuando toca en la superposición ... :) –
@ColinE verifique mi respuesta a [esta pregunta] (http: // stackoverflow.com/questions/14153038/how-to-allow-manipulations-within-listview-gridview-item-controls-while-allow/14161596 # 14161596) para otra solución. –