none
WPF, MDI y formularios modales RRS feed

  • Pregunta

  • Hola:

    Hasta ahora he realizado aplicaciones de gestión utilizando WinForms, basadas en un formulario MDI a modo de pantalla principal de la que obtenía el resto de formularios. En estos formularios, aparecian ciertos campos, por ejemplo un textbox para introducir el proveedor, en el cual pulsando una tecla (F11 en mi caso) se desplegaba un formulario modal con la lista de proveedores (ya filtrados con las primeras letras introducidas en el textbox.

    Ahora bien, mi idea es comenzar con algo similar pero en WPF en vez de Winforms, por lo que me gustaría saber como podría hacer con WPF algo equivalente. Si es con algún ejemplo aun mejor.

    miércoles, 28 de septiembre de 2011 21:52

Respuestas

  • Hola Alvaro.

    El MDI es algo obsoleto y posiblemente sea por ello por lo que microsoft no ha dado ningun soporte para ello en WPF. Esto se usaba antes por las capacidades de hardware de los pc.

    Actualmente muchas personas trabajan con multiples monitores y MDI aqui no tiene sentido alguno, de modo que se usan ventanas acoplables que se puedan mover y acoplar, personalizando las ventanas cada usuario.

    Ademas del proyecto que te ha comentado el compañero Antonio, si te atreves y quieres optar por algo mas actual y avanzado te pongo este otro:

    http://avalondock.codeplex.com/

    AvalonDock es una libreria para tener un entorno como el IDE de VS2010, yo lo he usado en varios proyectos viene muy bien para montar este tipo de interfaces. Ademas te permite mantener multiples monitores para tus ventanas.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    • Propuesto como respuesta CorsarioVasco jueves, 29 de septiembre de 2011 12:32
    • Marcado como respuesta Alvaro Matabuena sábado, 1 de octubre de 2011 22:14
    jueves, 29 de septiembre de 2011 9:11
  • Hola Alvaro

    Si quieres abrir una ventana cuando oprimas una tecla o combinación de teclas, puedes usar CommandBinding y agregarle un KeyGesture... en resumidas cuentas mira el ejemplo que hace ganesh.p en esta pagina.

    Un saludo

    PD: para ayudar a que el foro se mantenga organizado y más personas puedan beneficiarse de esta conversación, marca como respuesta la(s) respuesta(s) que te ayudaron.


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    sábado, 1 de octubre de 2011 21:43

Todas las respuestas

  • Hola Alvaro

    WPF no tiene una implementacion para MDI propiamente dicha, puedes usar este proyecto como base de tu programa MDI WPF.

    Con respecto al ejemplo ese si te lo debo porque ahora no cuento con el VS a mano pero si sé que en esa página proveen un ejemplo

    Un saludo


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    • Propuesto como respuesta David_González jueves, 29 de septiembre de 2011 9:12
    miércoles, 28 de septiembre de 2011 22:14
  • Hola Alvaro.

    El MDI es algo obsoleto y posiblemente sea por ello por lo que microsoft no ha dado ningun soporte para ello en WPF. Esto se usaba antes por las capacidades de hardware de los pc.

    Actualmente muchas personas trabajan con multiples monitores y MDI aqui no tiene sentido alguno, de modo que se usan ventanas acoplables que se puedan mover y acoplar, personalizando las ventanas cada usuario.

    Ademas del proyecto que te ha comentado el compañero Antonio, si te atreves y quieres optar por algo mas actual y avanzado te pongo este otro:

    http://avalondock.codeplex.com/

    AvalonDock es una libreria para tener un entorno como el IDE de VS2010, yo lo he usado en varios proyectos viene muy bien para montar este tipo de interfaces. Ademas te permite mantener multiples monitores para tus ventanas.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    • Propuesto como respuesta CorsarioVasco jueves, 29 de septiembre de 2011 12:32
    • Marcado como respuesta Alvaro Matabuena sábado, 1 de octubre de 2011 22:14
    jueves, 29 de septiembre de 2011 9:11
  • Creo que AvalonDock es una solución bastante buena. Entiendo que no se trata de hacer lo mismo con otra tecnología (MDI) sino evolucionar. Me quedaría un poco pendiente como resolver el caso de los formularios modales (por ejemplo al pulsar una tecla que se habra un form con un datagridview en el que seleccionar datos con un doble clik). No sé si esto se sigue permitiendo o gracias a las funcionalidades de WPF hay alguna solución más elegante.
    jueves, 29 de septiembre de 2011 20:45
  • Hola Alvaro

    Si quieres abrir una ventana cuando oprimas una tecla o combinación de teclas, puedes usar CommandBinding y agregarle un KeyGesture... en resumidas cuentas mira el ejemplo que hace ganesh.p en esta pagina.

    Un saludo

    PD: para ayudar a que el foro se mantenga organizado y más personas puedan beneficiarse de esta conversación, marca como respuesta la(s) respuesta(s) que te ayudaron.


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    sábado, 1 de octubre de 2011 21:43