Столбец сетки с шириной "*" не использует все доступное пространство должным образом [дубликат]
У меня проблема с первым использованием ListView. Мой настраиваемый элемент должен (в настоящее время) иметь 2 строки по 3 столбца, каждая из которых содержит метку (ширина 1-го столбца = "Авто"), текстовое поле (заполнение 2-го столбца (проверено с помощью = " " или width="100") и кнопка в 3-м столбце (width="Auto")
К сожалению, второй столбец не масштабируется для использования полной ширины Listview, но ведет себя как width ="Auto".
Обратите внимание, что изначально я использовал StackPanel в качестве верхнего элемента управления в DataTemplate и заменил его сеткой, просто чтобы проверить, может ли он решить проблему.
Тестирование DataTemplate Grid в тестовом приложении прямо в окне работает должным образом.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Content="Input Paths"/>
<ListView Grid.Row="1" ItemsSource="{Binding PathListAccess.PathList.PathList}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--Row 0-->
<Label Grid.Row="0" Grid.Column="0" Content="Input Directory:"/>
<TextBox Grid.Row="0" Grid.Column="1" HorizontalAlignment="Stretch" Text="{Binding InputPath}"/>
<Button Grid.Row="0" Grid.Column="2" Content="..."/>
<!--Row 1-->
<Label Grid.Row="1" Grid.Column="0" Content="Output Directory:"/>
<TextBox Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch" Text="{Binding OutputPath}"/>
</Grid>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
1 ответ
Я думаю, что проблема в том, что
ListView
значение по умолчанию для
Left
.
Попробуйте установить
HorizontalContentAlignment
к
Stretch
<ListView Grid.Row="1" ItemsSource="{Binding PathListAccess.PathList.PathList}"
HorizontalContentAlignment="Stretch">