Existe-t-il un moyen de dire à un composant [~ # ~] wpf [~ # ~] de prendre 100% de l'espace disponible?
Comme
width: 100%;
en CSS
J'ai ce XAML et je ne sais pas comment forcer Grid à prendre 100% de largeur.
<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 à
alt text http://foto.darth.cz/pictures/wpf_width.jpg
Je l'ai fait rose donc c'est évident combien d'espace cela prend. Je dois faire la grille rose 100% largeur.
C'est le conteneur du Grid
qui impose sa largeur. Dans ce cas, il s’agit d’un ListBoxItem
, aligné à gauche par défaut. Vous pouvez le configurer pour s'étirer 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>
Vous pouvez utiliser HorizontalContentAlignment="Stretch"
comme suit:
<ListBox HorizontalContentAlignment="Stretch"/>