2009-06-15 11 views
5

Este es un problema antiguo de elementos interactivos dentro de elementos interactivos, pero quiero que ScatterViewItem contenga otros elementos interactivos de superficie como SurfaceButton o SurfaceCheckBox. Tengo todos mis elementos allí y reaccionan a los grifos, etc. El problema es que solo obtengo el comportamiento normal de ScatterView una vez que hago clic en un área que no contiene un control.ScatterViewItems que contienen elementos interactivos de superficie

¿Existe una solución elegante para permitir el arrastre incluso cuando el contacto está en SurfaceButton o SurfaceCheckbox?

p. Ej.

<s:ScatterView >  
    <Grid Width="200" Height="200"> 
     <s:SurfaceButton /> 
    </Grid> 
</s:ScatterView> 

Respuesta

1

Después de hacer la misma pregunta en los foros de la comunidad de la superficie, la respuesta fue que esto es consistente con todo el comportamiento de control de WPF. Por ejemplo, si agrega elementos interactivos a un cuadro de lista, el ListBox no reaccionará a las interacciones cuando el mouse esté sobre el botón.

Si alguien más se encuentra con este problema, probablemente sea mejor resolver este problema mediante el diseño del control en lugar de intentar hackear este comportamiento juntos. El comportamiento de control debe permanecer constante de una aplicación a otra y de un control a otro.

+0

Ha pasado mucho tiempo y todavía no hay más publicaciones. Lo he marcado como la respuesta por el momento, pero si alguien en el futuro agrega una respuesta mejor, la cambiaré;) –

+0

Ojalá alguien lo hubiera investigado más. Es bastante natural tener elementos interactivos entre sí. –

0

puede 'piratear' este comportamiento escuchando eventos ContactLeave en uno de los controles secundarios y en eso, llame a contact.Capture (scatterviewitem). esto le indicará a la svi que se encargue de escuchar y responder al contacto. sin embargo, es y el resultado será un comportamiento inconsistente con otras partes de Surface y puede ser confuso. también es inconsistente incluso consigo mismo ... esto hace posible cambiar de control interno a SVI sin levantar el dedo, pero el usuario aún tiene que levantar el dedo para volver al control interno.

Cuestiones relacionadas