prem_data
prem_data

Reputation:

restricting the size of wpf dockpanel region

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

Answers (3)

prem_data
prem_data

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

Mart
Mart

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

DancesWithBamboo
DancesWithBamboo

Reputation: 4156

You can set the MaxWidth property of the control you are docking.

Upvotes: 1

Related Questions