У меня есть сетка wpf с двумя столбцами, которые должны быть равномерно распределены. Я знаю о размере звезды (*), но когда я устанавливаю ширину столбца равным образом, фактический столбец изменяется во время выполнения. Общая ширина сетки будет меняться в зависимости от размера окна, но я хочу, чтобы два столбца всегда были одинаковой ширины внутри этой сетки.Фиксированный пропорциональный размер в WPF
В настоящее время у меня есть много вложенных элементов, назначенных для первого столбца, а во втором столбце есть панель ItemsControl, которая отображает только элементы, когда принимается действие события кнопки ... так что бывают случаи, когда она пуста , Мое предположение состоит в том, что, поскольку второй столбец пуст, первый столбец автоматически занимает столько места, сколько может. Есть ли способ заставить столбцы оставаться пропорционально фиксированными? Вот моя основная установка:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*" ></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<!-- Lots of nested WPF elements inside this stack panel -->
</StackPanel>
<ItemsControl Grid.Column="1" ItemsSource="{Binding Tasks}">
<ItemsControl.Template>
<ControlTemplate TargetType="{x:Type ItemsControl}" >
<ItemsPresenter/>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="cc:Tasks">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Title}"></TextBlock>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
Я прочитал this thread, но я не совсем уверен, если этот ответ подходит эту проблему.
Будет ли «UniformGrid» работать лучше для вас, чем обычная сетка для того, что вы хотите сделать? –
Вы говорите, что когда Tasks является нулевым или пустым, второй столбец меняет ширину? Сколько места занимает первый столбец, когда он «занимает столько места, сколько может»? Все окно? +1 на 'UniformGrid'. Настройте строки = «1» и «Столбцы =« 2 ». –
Первый столбец занимает столько места, сколько необходимо. У меня есть текстовое поле, которое отображает путь к файлу. Таким образом, когда пользователь изменяет путь к файлу, ширина этого столбца изменяется для настройки. Я предпочел бы, чтобы ширина текстового поля была привязана к первой ширине столбца, которая затем должна составлять ровно 50% от общей ширины сетки. Спасибо за предложение по UniformGrid. Я посмотрю. – andyopayne