WPF: звезда в ColumnDefinition не расширяет столбцы - PullRequest
2 голосов
/ 27 августа 2011

У меня есть пользовательский элемент управления, которому нужно, чтобы 1-й и 3-й столбцы всегда имели одинаковую ширину.Мой код выглядит следующим образом:

<UserControl x:Class="UserControls.ListBoxSelector"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="5*" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="5*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <ListBox x:Name="ListBox_Source" Grid.Column="0" Grid.Row="0" />
        <StackPanel Grid.Column="1" Grid.Row="0" Orientation="Vertical">
            <Button Content="&gt;" Click="Button_Add_Click"/>
            <Button Content="&lt;" Click="Button_Remove_Click" />
        </StackPanel>
        <ListBox x:Name="ListBox_Destination" Grid.Column="2" Grid.Row="0" />
    </Grid>
</UserControl>

Результат не такой, как ожидалось, поскольку столбец 3 (ListBox_Destination) вообще не раскрывается.Разве 5 * в ColumnDefinition недостаточно, чтобы заставить список 2 иметь одинаковую ширину ??

ОБНОВЛЕНО: Извините, что я забыл упомянуть, что проблема возникает, только когда я помещаю элемент управления в RibbonGroup с использованием Microsoft Ribbon для WPF

Ответы [ 2 ]

2 голосов
/ 28 августа 2011

Иногда, когда вы помещаете свой элемент управления в определенные типы элементов управления макета (например, StackPanel), его размер не будет соответствовать ожидаемому, поскольку родительский макет будет только увеличивать размер дочернего элемента до минимального желаемого размера (достаточного для отображения содержимого).).Это может быть то, почему вы видите это, когда вы помещаете это в RibbonGroup.Попробуйте задать для вашей сетки значение ширины или минимальной ширины и посмотрите, имеет ли это значение.

0 голосов
/ 27 августа 2011

да, это заставляет столбцы 1 и 3 иметь одинаковый размер, но не гарантирует, что содержимое (списки) внутри полей будет одинакового размера.Вы должны установить размер контента, чтобы он занимал все пространство

...