Элегантный способ изменения размеров определенных столбцов в динамической 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
столбцы изменяемого размера.