2009-02-20 6 views
6

Estoy programando agregar un UserControl a otro en Silverlight 2 agregándolo a la colección "Children" del control principal. Al principio esto funciona bien. Si hago algo más en la ventana (en mi caso, estoy desplazando todo el panel fuera de la vista y luego de nuevo a la vista), aparentemente cambia el orden de reproducción y hace que mi control esté detrás de los demás. Estoy buscando una forma de controlar este comportamiento, para forzar a mi ventana a estar en la cima. El control Canvas tiene una propiedad ZOrder que te permite configurar esto, pero no estoy usando un lienzo, estoy usando Grids.Controlar el orden de representación (ZOrder) en Silverlight sin utilizar el control Canvas

He jugado con el uso de Children.Insertar y jugar con el índice y eso también cambia el orden de renderizado, pero parece una forma difícil de solucionar el problema. ¿Cómo puedo forzar mi control para estar en la cima?

--Matt

Respuesta

4

En una cuadrícula, la orden Z debe ser dictada por la orden o los niños. La posición 0 está en la parte inferior, la posición 1 está en la parte superior de la posición 0 y así sucesivamente.

No estoy seguro de que acepte que puede usar Canvas.ZIndex con una cuadrícula: es una propiedad adjunta del lienzo, por lo que solo estaría disponible si su cuadrícula está en un lienzo.

http://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.zindex(VS.95).aspx

1

Usted debe ser capaz de utilizar Canvas.ZIndex en una cuadrícula, en realidad es mal llamado y debe ser Panel.ZIndex pero debería funcionar.

7

Canvas.ZIndex funcionará para una rejilla (y cualquier otro control derivado de UIElement).

Como puede ver en http://msdn.microsoft.com/en-us/library/bb979730(VS.95).aspx Cualquier cosa que se derive de UIElement (la clase base para todos los elementos renderizados en Silverlight) admite la propiedad Canvas.ZIndex, así como Canvas.Top y Canvas.Left.

Cuestiones relacionadas