75 votes

Comment définir la largeur à 100% dans WPF

Existe-t-il un moyen d'indiquer le composant dans WPF pour prendre 100% de l'espace disponible ?

LLiikkee

width: 100%;  

en CSS

J'ai ce XAML, et je ne sais pas comment forcer la grille à prendre une largeur de 100%.

<ListBox Name="lstConnections">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Grid Background="LightPink">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="Auto"/>
          <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
          <RowDefinition Height="Auto"/>
          <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Path=User}" Margin="4"></TextBlock>
        <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=Password}" Margin="4"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding Path=Host}" Margin="4"></TextBlock>
      </Grid>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

Le résultat ressemble à

texte alternatif http://foto.darth.cz/pictures/wpf_width.jpg

J'ai fait en sorte qu'elle soit rose pour qu'on puisse voir l'espace qu'elle prend. Je dois faire en sorte que la grille rose ait une largeur de 100%.

0 votes

Le lien est mort...

0 votes

@MartiniBianco Je suis désolé, mais cette question est vieille de 8 ans. Je ne me souviens même pas de ce que contenait l'image, et je n'ai pas utilisé WPF depuis.

89voto

Kent Boogaart Points 97432

C'est le conteneur de la Grid qui est imposant sur sa largeur. Dans ce cas, c'est un ListBoxItem qui est aligné à gauche par défaut. Vous pouvez le configurer pour qu'il soit étiré comme suit :

<ListBox>
    <!-- other XAML omitted, you just need to add the following bit -->
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalAlignment" Value="Stretch"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

15 votes

Une petite note - si vous essayez de faire cela dans une application du magasin Windows, vous devez effectivement définir HorizontalContentAlignment en utilisant la même méthode que ci-dessus

70voto

Giovanny Farto M. Points 101

Vous pourriez utiliser HorizontalContentAlignment="Stretch" comme suit :

<ListBox HorizontalContentAlignment="Stretch"/>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X