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

Windows Presentation Foundation Discussion :

Redimensionner une fenêtre WPF à la taille de son contenu dynamique [Débutant(e)]


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 48
    Points
    48
    Par défaut Redimensionner une fenêtre WPF à la taille de son contenu dynamique
    Bonjour a tous ;

    Je suis nouveau sur wpf, et mon probleme et le suivant :
    J’ai une wpf window qui contient dans son grid, quelques labels et d’autres controls statiques au début, puis dans la dernière ligne de mon grid j’ai mis un datagrid que je bind à une observableCollection (mon binding marche impec).

    Comme ma collection contient beaucoup d’éléments, la hauteur de mon datagrid est conséquente, et ça dépasse la hauteur de ma window et du coup ça ne m’affiche pas le reste des lignes de mon datagrid.

    D’après ce que j’en sais, ça devrait m’afficher les scroolBar (au moins la verticale), mais nn, ce que je trouve bizarre sur tout que je ne précise a aucun moment le width and height ni de la window, ni du grid ni du datagrid.

    J’ai essayé les scrollBar.Visibility un peu par tout sans résultats.

    Merci de m’eclairssir.

  2. #2
    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 : 42
    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
    Points : 39 754
    Points
    39 754
    Par défaut
    Quel est le parent de ton DataGrid ? Un StackPanel je parie... Montre ton XAML.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 48
    Points
    48
    Par défaut
    Dsl, je n'ai pas le code là sous la main, je l'aurai ce soir, (je suis au boulot là!! lol)

    Par contre pour rép à ta question, j'ai essayé les deux solutions en fait, la première était de mettre le datagrid dans un stackpanel et la deuxieme je l'ai mis directement dans la ligne correpondante de mon grid en spécifiant la grid.row de mon datagrid.

    Merci.

  4. #4
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 48
    Points
    48
    Par défaut
    voilà en ce qui suit le code xaml que j'ai; je précise que les styles utilisés n'ont aucun impact sur le probleme.

    Code xaml : 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
        <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
     
            <StackPanel Grid.Row="0">
                    <Label Content="RESULTATS DE L'ANALYSE" HorizontalAlignment="Left" Margin="0,8,0,0" Name="label3" VerticalAlignment="Top" Width="auto" Foreground="#FF5C3A3A" FontSize="18" FontFamily="Times New Roman" Opacity="1">
            </Label>
                    <Label Content="impact_global" HorizontalAlignment="Center" Margin="0,40,0,0" Name="LabelImpactglobal" VerticalAlignment="Top" Width="auto" FontFamily="Times New Roman" FontSize="20" Foreground="#D6FF2710" OpacityMask="#FF5B6ED2">
                <Label.Triggers>
                    <EventTrigger RoutedEvent="Label.Loaded">
                        <!-- ou bien Label.mouseover -->
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard BeginTime="00:00:00"  SpeedRatio="2" AutoReverse="False" RepeatBehavior="6x" Storyboard.TargetName="LabelImpactglobal" Storyboard.TargetProperty="(Foreground).(SolidColorBrush.Color)">
                                    <!-- ou bien RepeatBehavior="0.0.4" ou "Forever"-->
                                    <ColorAnimation From="Beige" To="#D6FF2710" By="#FAF8981D" Duration="0:0:2"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Label.Triggers>
                <Label.Background>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="White" Offset="0" />
                        <GradientStop Color="#C75B6AA1" Offset="0.689" />
                    </LinearGradientBrush>
                </Label.Background>
            </Label>
                    <Grid>
                    <charting:Chart x:Name="chart" Width="350" Height="250" Initialized="chart_Initialized">
                        <charting:Chart.Series>
                            <charting:PieSeries    ItemsSource="{Binding}"  DependentValuePath="Impact"  
                                                                IndependentValuePath="Nom"  
                                                                Title="Pet Preference" IsSelectionEnabled="True" />
     
                        </charting:Chart.Series>
                    </charting:Chart>
                    <TextBlock Text="{Binding Nom}"></TextBlock>
                </Grid>
            </StackPanel>
     
                    <!--<DataGrid AutoGenerateColumns="true" HorizontalAlignment="Left" Margin="0,40,0,0" Name="dataGrid1" VerticalAlignment="Top" ItemsSource="{Binding}" AutoGeneratingColumn="dataGrid1_AutoGeneratingColumn">-->
            <DataGrid Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" VerticalScrollBarVisibility="Auto" AutoGenerateColumns="False" Name="dataGrid1" Style="{DynamicResource DataGridStyle1}" ItemsSource="{Binding  AllImpactedNode}" Initialized="dataGrid1_Initialized" CanUserResizeColumns="False" CanUserReorderColumns="False" MinColumnWidth="73" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" AlternatingRowBackground="#FFE4C1E8" RowBackground="#FFFFF490">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Nom" Width="SizeToHeader" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding Nom}"/>
                    <DataGridTextColumn Header="Poids" Width="SizeToHeader" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding Poids}"/>
                    <DataGridTextColumn Header="Distance" Width="SizeToHeader" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding Distance}"/>
                    <DataGridTextColumn Header="In" Width="SizeToHeader" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding In}"/>
                    <DataGridTextColumn Header="Out" Width="SizeToHeader" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding Out}"/>
                    <DataGridTextColumn Header="Motricite" Width="SizeToHeader" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding Motricite}"/>
                    <DataGridTextColumn Header="Influence" Width="SizeToHeader" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding Influence}"/>
                    <DataGridTextColumn Header="CPI" Width="SizeToHeader" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding CPI, StringFormat='00.00'}"/>
                    <DataGridTextColumn Header="CATT" Width="SizeToCells" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding CATT, StringFormat='00.0000'}"/>
                    <DataGridTextColumn Header="PoidsRelatif" Width="SizeToCells" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding PoidsRelatif, StringFormat='00.00'}"/>
                    <DataGridTextColumn Header="Impact" Width="SizeToCells" CellStyle="{StaticResource CenterCellStyle}" IsReadOnly="True" Binding="{Binding Impact, StringFormat='00.00 %'}" CanUserResize="False" />
     
     
                </DataGrid.Columns>
            </DataGrid>
        </Grid>

    Merci d'avance pour vos réponses.

  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 : 42
    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
    Points : 39 754
    Points
    39 754
    Par défaut
    C'est bien ce que je pensais, ton DataGrid est dans un StackPanel. Le problème du StackPanel, c'est qu'il n'a pas de "limite", et donc le DataGrid croit avoir toute la place qu'il veut donc il n'affiche pas de ScrollBar

    Utilise plutôt une Grid ou un DockPanel à la place du StackPanel

  6. #6
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 48
    Points
    48
    Par défaut
    Bonne réponse, bravo.

    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] wpf redimensionner une fenètre
    Par spunk62 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 28/03/2012, 18h51
  2. [QtGui] Redimensionner une fenêtre et son contenu
    Par nancy maman dans le forum PyQt
    Réponses: 4
    Dernier message: 09/05/2011, 16h22
  3. Redimensionner une fenêtre DOS dans un batch.
    Par derfatypik dans le forum Windows
    Réponses: 2
    Dernier message: 20/09/2007, 14h44
  4. redimensionner une fenêtre
    Par kitty2006 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/09/2006, 19h29
  5. Réponses: 10
    Dernier message: 12/09/2006, 18h11

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