Reputation:
Is there a way you can pin a wpf dockpanel? I have searched on the net and I have not found any functionality that will allow this. What I want is to lock the size of a dockpanel's dock regions. For example I want the right region"s width to stay locked all the time. The only solutions to this that I have seen are 3rd party controls. Does anyone know of a way to restrict the width of these regions? Thanx in advance.
Upvotes: 1
Views: 4105
Reputation:
Yes, I had LastChildFill = "False" already set, plus the my items control is already in a scrollviewer with a horizontal template applied. With this setup the initial layout looks great in the row. The only problem is when the itemscontrol grows too big and hits the right dock, it will always force the right dock to go smaller even though the minwidth is set on the grid that is contained within. Here is an example of my code:
<DockPanel Grid.Row="1" LastChildFill="False">
<!--Horizontal template applied-->
<ScrollViewer DockPanel.Dock="Left">
<ItemsControl/>
</ScrollViewer>
<Grid DockPanel.Dock="Right" MinWidth="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0"/>
<Button Grid.Column="1"/>
</Grid>
</DockPanel>
Thanks for the help . . . any other ideas?
Upvotes: 0
Reputation: 5788
According to your additional explanations, you have the following layout:
<DockPanel>
<ItemsControl DockPanel.Dock="Left"/>
<StackPanel DockPanel.Dock="Right"/>
</DockPanel>
The first thing I recommend is to add LastChildFill="False"
to the DockPanel
so your left and right parts grow unrelated.
Then you have to decide what happens when the number of items in the ItemsControl
increase. You can make a horizontal scrollbar appear, make them wrap, and so on.
Upvotes: 1
Reputation: 4156
You can set the MaxWidth property of the control you are docking.
Upvotes: 1