none
Duda sobre aplicaciones Metro RRS feed

  • Pregunta

  • Hola tengo una aplicacion que tiene tres niveles de datos. Os pondre un ejemplo.

    Tengo el Director(nombre, apellidos,fecha de nacimiento)

    el director tiene una lista de Jefes los cuales tambien tienen nombre, apellidos, fecha de nacimiento y aparte una lista de la gente que tienen a su cargo la cual tiene nombre apellidos y fecha de nacimiento.

    En un ejemplo seria

    Director

    a

    b

    1/1/1

    Jefe 1

    a

    b

    1/1/1

    empleado 1

    ...

    empleado 2

    jefe 2

    ...

    empleado 1

    empleado 2

    Teniendo esto en cuenta yo en mi main page tengo un GridView en el que le paso la plantilla de datos. A ese gridView le digo que el tamaño sea tanto como sea la ventana con un simple

    Window.Current.Bounds.Heigth

    y luego el la plantilla de estilos StandardStyles.xaml

    tengo todas las plantillas de datos.

    La del director que tiene

    <textblock text="nombre">

    <textblock text="Apellidos">

    <textblock text="fecha de nacimiento">

    <listView ItemsSource ={Binding Jefes}

    ItemTemplate={StaticResource PlantillaJefes}>

    Para que todo se me muestre bien tengo que ponerle a ese listview un Heigth fijo en las pruebas era 550 pero yo quiero que solo sea el 30% de la pantalla.

    ¿Como podria hacerlo? no se me ocurre ninguna manera y me estoy desquiciando no quiero poner el tamaño fijo para que la aplicacion se vea bien en todas las resoluciones.

    Un saludo y gracias de antemano.

    lunes, 3 de junio de 2013 12:12

Respuestas

  • Hola,

    Te recomendaría el uso de un GridView. Con él puedes definir el número de las líneas o columnas que necesites, y sus tamaños. Por ejemplo, para conseguir 2 líneas que ocupas el 30% y el 70% de la pantalla, podrías usar el siguiente código:

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="30*"/>
            <RowDefinition Height="70*"/>
        </Grid.RowDefinitions>
            
        <!-- contenido -->
    </Grid>

    Espero que te sea útil.

    Un saludo


    Helge Mahrt - Microsoft Developer Support Escalation Engineer - If my reply answers your question, please mark this post as answered.

    martes, 4 de junio de 2013 9:05
  • Hola DesarrolloYudigar,

    Una de las formas sería modificar el template para que todo estuviera incluido en un grid de dos columnas con las dimensiones que quieres. El listview estaría en una columna de * y los textblock en una columna de 2* que incorporaría un stackpanel:

        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="2*" />
                <ColumnDefinition Width="*" />            
            </Grid.ColumnDefinitions>
            <StackPanel Grid.Column="0">
                <TextBlock Text="nombre"/>
                <TextBlock Text="Apellidos" />
                <TextBlock Text="fecha de nacimiento" />
            </StackPanel>
            <ListView Grid.Column="1" ItemsSource="{Binding Jefes}" ItemTemplate="{StaticResource PlantillaJefes}" />
        </Grid>
    ¡A ver si con eso te sirve! :)
    martes, 4 de junio de 2013 9:15

Todas las respuestas

  • Hola,

    Te recomendaría el uso de un GridView. Con él puedes definir el número de las líneas o columnas que necesites, y sus tamaños. Por ejemplo, para conseguir 2 líneas que ocupas el 30% y el 70% de la pantalla, podrías usar el siguiente código:

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="30*"/>
            <RowDefinition Height="70*"/>
        </Grid.RowDefinitions>
            
        <!-- contenido -->
    </Grid>

    Espero que te sea útil.

    Un saludo


    Helge Mahrt - Microsoft Developer Support Escalation Engineer - If my reply answers your question, please mark this post as answered.

    martes, 4 de junio de 2013 9:05
  • Hola DesarrolloYudigar,

    Una de las formas sería modificar el template para que todo estuviera incluido en un grid de dos columnas con las dimensiones que quieres. El listview estaría en una columna de * y los textblock en una columna de 2* que incorporaría un stackpanel:

        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="2*" />
                <ColumnDefinition Width="*" />            
            </Grid.ColumnDefinitions>
            <StackPanel Grid.Column="0">
                <TextBlock Text="nombre"/>
                <TextBlock Text="Apellidos" />
                <TextBlock Text="fecha de nacimiento" />
            </StackPanel>
            <ListView Grid.Column="1" ItemsSource="{Binding Jefes}" ItemTemplate="{StaticResource PlantillaJefes}" />
        </Grid>
    ¡A ver si con eso te sirve! :)
    martes, 4 de junio de 2013 9:15
  • Muchas gracias habia probado a cambiar los estilos del listview y la propiedad height pero no se me habia ocurrido hacer eso muchas gracias.

    Al poner los tamaños en el grid ya lo hace perfectamente.

    Un saludo.


    martes, 4 de junio de 2013 9:55