2008-11-03 8 views
16

Me gustaría crear un cuadro de diálogo emergente en Silverlight en el que pueda manipular controles, ingresar datos y devolver un valor. Quiero que sea modal, de modo que cuando esté abierto, la página "Abajo" no sea accesible. No he encontrado una manera fácil de hacer esto todavía. ¿Alguna sugerencia?¿Cómo creo un cuadro de diálogo emergente en Silverlight?

Respuesta

12

Sé que la pregunta hecha por una solución de Silverlight 2, pero en Silverlight 3 (Beta ahora, RTW en julio de 2009) hay un built-in ChildWindow que puede hacer todo lo que estás buscando

+2

He aquí una guía para ventanas hijas: http://www.wintellect.com/CS/blogs/jprosise/archive/2009/04/29/silverlight-3 -s-new-child-windows.aspx –

+0

ChildWindows están disponibles ahora que se envía Silverlight 3. ¡Son fáciles de usar, tienen un buen patrón de uso y se ven espectaculares! –

1

Soy nuevo en el marco de Sliverlight y estoy empezando a descubrirlo, pero tengo una necesidad similar de un cuadro de diálogo modal emergente. Acabo de probar una idea que parece prometedora:

  1. Creé un rectángulo (llamado "Escudo") que cubre todo el área de mi aplicación. Existe encima de todo en la aplicación principal. Configuré el pincel de relleno en Blanco, y el pincel de opacidad en un 81% para que se muestren los contenidos de la aplicación principal, pero ligeramente (como en deshabilitado). Luego asegúrate de que el "Escudo" se pueda probar con éxito. Ahora, cuando el "Escudo" esté visible, también, de hecho, bloqueará todas las entradas a los controles a continuación (al menos desde el mouse, aún no se ha probado el teclado). Cuando la aplicación se inicializa, establece la visibilidad "Escudo" en Contraída. En ese estado, no bloqueará la entrada a la aplicación principal.
  2. El cuadro de diálogo se construye en otro elemento de lienzo que existe en el orden z en la parte superior del escudo. Normalmente, el cuadro de diálogo será invisible, pero cuando lo necesito, simplemente configuro el "Escudo" como visible y el cuadro de diálogo como visible. Como el diálogo está en la parte superior del "Escudo", obtengo un comportamiento muy modal. Cuando el cuadro de diálogo está cerrado, vuelva a hacer que el lienzo del diálogo y el lienzo "Escudo" sean invisibles y que la aplicación principal vuelva a estar activa.

Estoy seguro de que esta es la forma más bruta de hacerlo y que eventualmente voy a centrarme en una construcción más elegante, pero funciona por ahora.

Cuestiones relacionadas