Элегантный способ изменения размеров определенных столбцов в динамической WPF UniformGrid

Как говорится в заголовке: существует ли элегантный способ изменения размеров отдельных столбцов в динамической UniformGrid?

Подробности:

У меня есть ItemsControl и установить ItemsPanelTemplate для типа UniformGrid. ItemTemplate установлен на пользовательский элемент управления, который отображает содержимое столбца.

Вот выдержка из xaml:

<ItemsControl x:Name="PART_Dimensions" 
            Grid.Column="1" HorizontalAlignment="Stretch">
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>

        <UniformGrid Columns="{Binding 
            Path=ItemsSource.Count, 
            RelativeSource={RelativeSource FindAncestor,
            AncestorType={x:Type ItemsControl}}}" 
                        IsItemsHost="True"/>

    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <ItemsControl.ItemTemplate>
    <DataTemplate>

            <local:Dimension 
                PropertyA="{Binding SourceA}"
                ItemsSource="{Binding SourceB}" />

    </DataTemplate>
</ItemsControl.ItemTemplate>

Теперь я пытаюсь добиться того, чтобы определенные столбцы имели изменяемый размер, давая им статическую ширину, в то же время позволяя другим столбцам иметь одинаковый размер по ширине.

Есть ли у кого-нибудь направление, чтобы указать мне? Я надеялся избежать слишком специфических пользовательских реализаций рендеринга UniformGrid, есть ли разумный и простой способ сделать это?

заранее спасибо с уважением Оле

1 ответ

Если вы пытаетесь сохранить несколько столбцов со статической шириной и позволить другим иметь динамическую ширину, я бы сказал, UniformGrid не правильно Panel идти с.

Почему бы тебе не пойти с StackPanel с Horizontal Orientation? Из вашего кода, я вижу, вам нужен только один ряд.

Если это не работает для вас, перейдите с Grid, Вам нужно будет написать код, но это даст вам лучшие результаты. Ты можешь использовать GridSplitter делать Grid столбцы изменяемого размера.

Другие вопросы по тегам