none
Aplicación de escritorio con varias ventanas. RRS feed

  • Pregunta

  • Hola a todos, 

     

    Estoy desarrollando una aplicacion en WPF 3.5 y Expression Blend 2 + Visual Studio 2010.

     

    LLevo años programando en VB.NET y C# (desde el framework 1) y estoy muy acostumbrado a crear formularios y mostrarlos / cerrarlos obteniendo el DialogResult, por ejemplo.

     

    En esta aplicación en WPF también debo mostrar algunas "ventanas", algunas de las cuales serán lanzadas por un proceso separado (un servidor TCP).

     

    He hecho algunas pruebas, donde he podido ver que una "window" es una ventana "principal", el concepto de "page" no lo acabo de tener claro y por ultimo los usercontrols, de los que he visto ejemplos y creo que entiendo.

     

    Mi idea es hacer una sola "ventana" ("window", entiendo), dentro de la cual pueda mostrar el resto de "ventanas", las cuales no se si debo implementarlas como "page"s o como "usercontrols". Esta aplicación debe ser manejada desde pantalla táctil (botones grandes, etc) y habrá ventanas que se muestren debido a un click de usuario o (como ya he comentado) por un evento lanzado desde un proceso separado.

     

    Cual es la mejor manera de diseñar una interfaz de este tipo?

     

    Gracias de antemano.

    viernes, 11 de junio de 2010 14:14

Respuestas

  • Hola!

    Para tener una sola ventana a pantalla completa meteria el resto de ventanas como usercontrols dentro de tabs, y si, si necesitas usar varias ventanas en la misma pestaña puedes usar la visibility.

    Un gran saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog
    Sigueme en Twitter
    • Marcado como respuesta unexpectedkas lunes, 13 de diciembre de 2010 12:26
    viernes, 11 de junio de 2010 18:57
    Moderador

Todas las respuestas

  • Hola!

    Una Window no es una ventana principal, es una ventana a secas, tu proyecto puede tener tantas window como quieras, lo que no existe es el concepto de DialogResult ni el MDI.

    Para ventanas Popup, las tipicas con las que buscas un dato o muestras informacion ampliada, usaria window, para ventanas que tengan mas funcionalidad y se usen mucho, usaria usercontrols cargados en tabpages dentro de la ventana principal.

    Un gran saludo.


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog
    Sigueme en Twitter
    viernes, 11 de junio de 2010 14:22
    Moderador
  • Muchas gracias por la respuesta,

     

    Es verdad, he probado y puedo tener 2 ventanas abiertas.

     

    La idea es tener una sola aplicacion a pantalla completa, usarias varias windows para esto?

     

    Ademas has dado en el clavo, en la pantalla principal uso un tabcontrol. por lo que ahora tengo otra duda: Si dentro de cada tabpage ademas puede haber varias "ventanas" a mostrar, es buena idea usar 1 solo grid con varios usercontrols a los cuales se les cambia la propeidad Visibility (visible/collapsed)? 

    viernes, 11 de junio de 2010 15:47
  • Hola!

    Para tener una sola ventana a pantalla completa meteria el resto de ventanas como usercontrols dentro de tabs, y si, si necesitas usar varias ventanas en la misma pestaña puedes usar la visibility.

    Un gran saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    MCTS .NET Framework 3.5 Windows Presentation Foundation
    Visita mi Blog
    Sigueme en Twitter
    • Marcado como respuesta unexpectedkas lunes, 13 de diciembre de 2010 12:26
    viernes, 11 de junio de 2010 18:57
    Moderador
  • Hola Unexpected.

    antes que nada comentarte que si vas a comenzar la aplciacion desde 0, deberias echarle un vistazo a esto;

    http://msdn.microsoft.com/es-es/magazine/dd419663.aspx

    Es un articulo de microsoft para implementar el patron mvvm, WPF esta diseñado para que la implementacion de este patron sea muy sencilla.

    El articulo da un ejemplo que puedes usar como punto de partida, de modo que ya tienes casi toda la Shell, una ventana principal con tabs y un menu a la izquierda. Solo tienes que adaptarlo a tus necesidades. (articulo muy recomendado si se va a trabajar con WPF/silverlight).

    Por otra parte, preguntabas diferencias entre Windows, usercontrols y pages.

    Bien como bienes de Winforms, puedes asociar el objeto Window a un Form, practicamente tienen la misma mision. Los UserControls tambien existen en Winforms de modo que se trabaja igual con ellos, te creas una ventana y vas cambiando los usercontrols (que pueden existir bajo cualquier contenedor).

    Lo que si que no existe son los Page. El objeto page, posiblemente surgiera de la programacion en XBAP, que son aplicaciones WPF para navegadores, es un objeto muy peculiar por que un objeto Page implementa funcionalides de un control WebBrowser.

    Aunque un Page puede ser hospedado por un Window, NavigationWindow, Frame y WebBrowser. 

    Los pages tienen la ventaja de poder implementar historiales, de modo que biene muy bien para crear por ejemplo asistentes, pero tienes que tener en cuenta que es un objeto mas pesado que un user control, de modo que si no requieres las caracteristicas de navegacion, la posibilidad de implementarlo en un browser y este tipo de cosas, mejor usar un userControl.

     

     


    Saludos
    David González
    viernes, 11 de junio de 2010 19:25
  • Muchisimas gracias a todos por vuestras respuestas, me habies aclarado bastante los conceptos que me faltan para WPF.

     

    David, gracias por el enlace, dedicaremos un buen rato a el :)

    lunes, 14 de junio de 2010 8:01
  • Hola! estoy empezando a utilizar WPF y aun tengo algunos puntos no tan claros, si pudieras dar un ejemplo de como hacer que las ventanas se muestren en tabs seria genial.

    Gracias


    miércoles, 5 de marzo de 2014 2:47