Elegant way of enabling specific Columns in a dynamic WPF UniformGrid to be resizable
like the title says: Is there an elegant way of enabling specific columns in a dynamic UniformGrid to be resizable?
The details:
I have a ItemsControl and set the ItemsPanelTemplate to be of type UniformGri开发者_C百科d. The ItemTemplate is set to a Custom Control that renders the column content.
Here is the xaml excerpt:
<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>
Now, what i'm trying to achieve is to make it possible, that specific columns are resizable, giving them a static width while still allowing the other columns to be sized uniformly in width.
Has anyone some direction to point me to? I was hoping to avoiding too specific custom implementations of the Rendering of the UniformGrid, is there a smart and easy way doing this?
thanks in advance with regards Ole
If you are trying to keep a few columns with static width and let others have a dynamic width, I would say UniformGrid
is not the right Panel
to go with.
Why don't you go with a StackPanel
with Horizontal Orientation
? From you code, I see you only need one row.
If that does not work for you, go with Grid
. You will need to write some code but that will give you the best results. You can use GridSplitter
to make Grid
columns resizable.
精彩评论