none
Interfaz de Usuario

    Pregunta

  • Primero saludar a toda la gente que ayuda en este foro.

    Como leen en el titulo necesito crear una interfaz de usuario que trabaja en un 100% con la resolución del monitor o pantalla del equipo donde se ejecutara. La interfaz consta con 7 Form (MDI) abiertos en forma automática, 6 de ellos presentan información de procesos y gráficas de lo mismo. y el séptimo formulario es como una Status Bar con la opción de cerrar todos los Form.

    El layaout de la pantalla por ejemplo, si la resolución del monitor es de (1024*768), serian 6 FORM de 341*325 y el séptimo 1024*80 

    (considere 730 en ves de los 768 ya que le resto la barra de tarea de Windows)

    En resumen cada uno de los 6 form deben auto ajustarse (incluso su contenido), es decir al dar doble click quedaría de una resolución de 682*650 (aumentando su tamaño al doble) y se posicionaría en el centro de la pantalla, al dar doble click nuevamente vuelve a su posición y al tamaño inicial.

    he leído y existen estas dos variables, pero no hay ejemplos muy claros de como usarlas: Autoscaledimensions y Currentautoscaledimensions, si alguien tiene mas información con respecto a esto ojala pueda postearlo. Gracias.

    Uso Visual Studio 2010

    viernes, 12 de abril de 2013 12:40

Respuestas

  • hola

    aconsejaria si el tema de la resolucion es tan importante que intentes implementar la UI haciendo uso de WFP

    este tiene resuleta muy bien este tema, cosa que winform no

    este define

    Various Types of Panels in XAML Layout

    distintos tipos de contenedores que hace posible que el cambio de resolucion adapte la aplciacion, winform no cuenta con eso a los sumo tiene las propeidad Dock y Anchor pero solo eso

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 12 de abril de 2013 14:01
  • si se que wpf no es simple al principio, pero esta mucho mas avanzado que winforms, hay controle como los que se mencionan en el link que puse que permiten un posicionamiento y relicalizacion automatica de los controels segun cambien las dimensiones de la pantalla

    y lu bueno es que no tienes que poner una sola linea de codigo para que esto suceda


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 12 de abril de 2013 16:20

Todas las respuestas

  • hola

    aconsejaria si el tema de la resolucion es tan importante que intentes implementar la UI haciendo uso de WFP

    este tiene resuleta muy bien este tema, cosa que winform no

    este define

    Various Types of Panels in XAML Layout

    distintos tipos de contenedores que hace posible que el cambio de resolucion adapte la aplciacion, winform no cuenta con eso a los sumo tiene las propeidad Dock y Anchor pero solo eso

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 12 de abril de 2013 14:01
  • Gracias por la respuesta Leandro, de hecho estaba pensando desde un principio trabajar con WPF , el inconveniente es que nunca lo he usado, pero creo que es la mejor opción, en todo caso para aquellos que siguen este topic les dejo lo que llevaba realizado:


    En el Form Load (Form7)

        Private Sub Form7_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
             Dim desktopSize As Size
            desktopSize = System.Windows.Forms.SystemInformation.PrimaryMonitorSize
            Dim Alto As Integer = desktopSize.Height
            Dim Ancho As Integer = desktopSize.Width

            Dim x, y As Integer ' el 38 es la barra de Windows y el 50 es el tamaño del form 7 (Status Bar)
            x = 1
            y = Alto - 38 - 50
            Me.Location = New Point(x, y)
            ' Tamaño Formulario 7
            Me.Size = New System.Drawing.Size(Ancho, 50)
            Form1.Show()
        End Sub

    Luego el Form 1 en el evento Load()

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim desktopSize As Size
            desktopSize = System.Windows.Forms.SystemInformation.PrimaryMonitorSize
            Dim Alto As Integer = desktopSize.Height
            Dim Ancho As Integer = desktopSize.Width

            Dim x, y As Integer
            x = 1
            y = 1
            Me.Location = New Point(x, y)
            Alto = (Alto - 38 - 50) / 2
            Ancho = (Ancho - 2) / 3
            ' Tamaño Formulario 1
            Me.Size = New System.Drawing.Size(Ancho, Alto)
            Form1PosX = x + 1 + Alto
            Form1PosY = y + Ancho
            Form2.Show()
        End Sub

    Y así sucesivamente hasta pasar al Form4 que seria el que va debajo del Form1.

    Más que nada son matemáticas con cuatro variables ([x,y] Posición y [Alto y Ancho] de Tamaño de Form)

    Ahora a ver como lo puedo construir con WPF.

    viernes, 12 de abril de 2013 14:25
  • si se que wpf no es simple al principio, pero esta mucho mas avanzado que winforms, hay controle como los que se mencionan en el link que puse que permiten un posicionamiento y relicalizacion automatica de los controels segun cambien las dimensiones de la pantalla

    y lu bueno es que no tienes que poner una sola linea de codigo para que esto suceda


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 12 de abril de 2013 16:20
  • Gracias nuevamente Leandro, ahora ando en búsqueda de un foro y tutoriales para comenzar a usar WPF
    viernes, 12 de abril de 2013 16:51