Как установить ширину до 100% в WPF
есть ли способ как сказать компонент в WPF чтобы занять 100% свободного места?
Как
width: 100%;
в CSS
у меня есть этот XAML, и я не знаю, как заставить сетку принимать 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>
результат выглядит так:
alt текст http://foto.darth.cz/pictures/wpf_width.jpg
Я сделал его розовым, так что очевидно, сколько места это займет. Мне нужно сделать розовый сетка 100% ширины.
2 ответов:
- это контейнер
Gridчто накладывается на его ширину. В данном случае, этоListBoxItem, который по умолчанию выравнивается по левому краю. Вы можете настроить его на растяжку следующим образом:<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>
вы могли бы использовать
HorizontalContentAlignment="Stretch"следующим образом:<ListBox HorizontalContentAlignment="Stretch"/>
Comments