IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

mise en page et stackpanel (taille des éléments en fonction de la taille de la page)


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 200
    Par défaut mise en page et stackpanel (taille des éléments en fonction de la taille de la page)
    bonjour, je dispose de trois stackpanel
    je souhaiterai que les 2 premiers soient alignés horizontalement et que le troisieme soit en dessous des deux premiers.

    actuellement le premier stackpanel adapte sa largeur en fonction de la largeur de ses composant (ce qui est bien) cependantle deuxieme a coté si je ne met pas de taille fixe prend la meme largeur , or j'aimerai que celui ci prene toute la largeur restante. ensuite j'aimeria que le stackpanel en dessous prene la largeur des 2 du haut.

    Or dans ce stackpanel j'ia un datagrid. les colonnes ont automatiquement une largeur en adéquation avec les données qu'il y a dedans... donc il ne prend pas toutes la largeur...

    en esperant avoir etait clair
    merci d'avance pr vos réponses


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
    	<StackPanel>
    		<dataFormToolkit:DataForm  x:Name="formulaire" >
    	</StackPanel>
    	<StackPanel Width="850">
    		<chartingToolkit:Chart x:Name="graphique" />
    	</StackPanel>
     
    </StackPanel>
     
    <StackPanel x:Name="Panel2" Margin="5,5,5,0" >
    	<data:DataGrid x:Name="tableau" MaxColumnWidth="150" HorizontalAlignment="Center" AutoGenerateColumns="True" />
    	<data:DataPager/>
    </StackPanel>

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Ton layout serait sans doute mieux rendu avec une Grid à deux colonnes et deux lignes :
    la première colonne de largeur "Auto", la seconde de largeur "*".
    Et la DataGrid de la deuxième ligne utiliserait un ColumnSpan de 2.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Effectivement ce serait beaucoup plus simple avec une Grid... Le StackPanel prend toujours la largeur de son contenu, on ne peut pas facilement lui faire occuper l'espace restant.

    Tu peux faire quelque chose comme ça :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
     
        <dataFormToolkit:DataForm  x:Name="formulaire" Grid.Row="0" Grid.Column="0">
        <chartingToolkit:Chart x:Name="graphique"  Grid.Row="0" Grid.Column="1" />
        <StackPanel x:Name="Panel2" Margin="5,5,5,0"
                    Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
            <data:DataGrid x:Name="tableau" MaxColumnWidth="150" HorizontalAlignment="Center" AutoGenerateColumns="True" />
            <data:DataPager/>
        </StackPanel>
     
    </Grid>

    Soit dit en passant, ça sert à rien d'utiliser un StackPanel si c'est pour y mettre un seul élément

    Si tu veux pas t'embêter avec les RowDefinitions/ColumnDefinitions, tu peux utiliser cette Grid simplifiée. C'est pour WPF, mais y a pas de raison que ça marche pas en SL il me semble... Ca s'utilise comme ça :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <my:SimpleGrid Rows="Auto,Auto" Columns="Auto,*">
        <dataFormToolkit:DataForm  x:Name="formulaire" Grid.Row="0" Grid.Column="0">
        <chartingToolkit:Chart x:Name="graphique"  Grid.Row="0" Grid.Column="1" />
        <StackPanel x:Name="Panel2" Margin="5,5,5,0"
                    Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
            <data:DataGrid x:Name="tableau" MaxColumnWidth="150" HorizontalAlignment="Center" AutoGenerateColumns="True" />
            <data:DataPager/>
        </StackPanel>
     
    </my:SimpleGrid>

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 200
    Par défaut
    merci de vos réponse

    en effet j'ia tester avec un grid et un premier test simple a montrer le resultat souhaité.
    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
        <Grid x:Name="LayoutRoot" Background="Blue">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" MinWidth="30" MaxWidth="150"></ColumnDefinition>
                <ColumnDefinition Width="*" ></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="Auto"></RowDefinition>
            </Grid.RowDefinitions>
     
           <!-- <ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}" MouseWheel="PageScrollViewer_MouseWheel">-->
     
            <StackPanel Grid.Column="0" Grid.Row="0">
                <TextBlock Text="Selectionnez: " FontWeight="bold" ></TextBlock>
                    <ListBox x:Name="listebox" SelectionMode="Single" MaxHeight="100"/>
                    <Button x:Name="btnTest" Width="200" Height="30" Content="Text" ></Button>
            </StackPanel>
            <StackPanel Grid.Column="1" Grid.Row="0">
                <Button x:Name="btnTest2"  Height="30" Content="Text"></Button>
            </StackPanel>
     
                <Button x:Name="btnTest3"  Height="30" Content="Text" Grid.ColumnSpan="2" Grid.Row="1"></Button>
     
            <!--</ScrollViewer>-->
        </Grid>
    </navigation:Page>

    en effet ce n'est pas très util d'utiliser des stackpanel pr un seul élément (je met juste dans mon exmple, le premier stack panel a 3 elemetn, donc ok , le 2eme en a qu'un seul mais le stack panel permet automatiquement d'aligner en au a gauche de la case donc c tout ^^

    En revanche je suis sur un projet silverlight de type navigation, or j'avai déjà remarqué qu'il était + difficile d'utiliser les grid avec ce type de projet. exemple simple ou mettre ma balise <ScrollViewer> si je le met au mme endroit qu'avant (tout de suite apres la balise grid) bah la j'ai un probleme de "content is set more than once..."

    (ps : pr le simplegrid je vais jeter un coup d'oeil pr voir si c'est lourd a faire ou non car je trouve ça pratique, néanmoins ça ne pose pas de pb quant aut style des page? de base quand on cré une nouvelle page c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <navigation:Page x:Class="testGrid.About" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        ...>
        <Grid x:Name="LayoutRoot">
            <ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}">
                <StackPanel x:Name="ContentStackPanel">
                    <TextBlock ..."/>
                </StackPanel>
            </ScrollViewer>
        </Grid>
    </navigation:Page>

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par livinho38 Voir le message
    En revanche je suis sur un projet silverlight de type navigation, or j'avai déjà remarqué qu'il était + difficile d'utiliser les grid avec ce type de projet. exemple simple ou mettre ma balise <ScrollViewer> si je le met au mme endroit qu'avant (tout de suite apres la balise grid) bah la j'ai un probleme de "content is set more than once..."
    Ben c'est pas spécifique aux projets de type navigation... le problème serait le même dans n'importe quel type de projet.

    Citation Envoyé par livinho38 Voir le message
    (ps : pr le simplegrid je vais jeter un coup d'oeil pr voir si c'est lourd a faire ou non car je trouve ça pratique, néanmoins ça ne pose pas de pb quant aut style des page? de base quand on cré une nouvelle page c'est :
    Ah ben oui, il faut modifier la page générée automatiquement... d'un autre côté, tu n'es pas obligé de remplacer TOUTES les grilles par des SimpleGrid, tu peux le faire au cas par cas.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 200
    Par défaut
    Ben c'est pas spécifique aux projets de type navigation... le problème serait le même dans n'importe quel type de projet.
    oui oui en effet, je dit ça pour dire que ce j'ai pas juste un module mais toute une page , donc le scroll est obligatoire.

    as - tu une solution dans ce cas la ?


    et pour le grid ca change peut etre pas beaucoup pour 1 page mais a plus grande echelle, donc je vais voir et le tester dans tout les cas parce que (peutt etre pas dans mon cas je sais pas) ça a l'air bien interessant

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 200
    Par défaut
    j'ai tester de metre le scroll de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}" MouseWheel="PageScrollViewer_MouseWheel">
            <Grid x:Name="LayoutRoot">
            </Grid>
       </ScrollViewer>

    a premiere vue ça a l'air de fonctionner mais étant données que de base les balise sont inversées je pense que ce n'est pas bien de faire comme sa...
    ?

Discussions similaires

  1. Ecrire dans un fichier en fonction de la taille des éléments
    Par michel42 dans le forum Général Python
    Réponses: 2
    Dernier message: 03/05/2012, 16h54
  2. Réponses: 3
    Dernier message: 18/08/2011, 12h05
  3. [Exchange 2003] Taille des éléments d'une boîte aux lettres.
    Par Richard_35 dans le forum Exchange Server
    Réponses: 0
    Dernier message: 20/10/2010, 11h59
  4. Réponses: 2
    Dernier message: 11/08/2010, 16h27
  5. Expand et taille des éléments
    Par flo_k dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 30/05/2008, 19h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo