Question

I'm using a Dockpanel via C# & WPF to display 2 user controls The Left UserControl is a Datagrid with Filters (Called Filter) The Right UserControl is a Custom Form That will change depending on what type of Data the user is viewing.

I'm setting the Dockpanel via this code

private void SetMasterDock(UIElement MyFilter, UIElement NewViewer)
        {
            MasterDock.Children.Clear();
            DockPanel.SetDock(MyFilter, Dock.Left);
            DockPanel.SetDock(NewViewer, Dock.Right);
            MasterDock.Children.Add(MyFilter);
            MasterDock.Children.Add(NewViewer);
        }

All the above works as coded.

Now the Change I'm looking for (If possible)

I'd like to know what / how to enable the User to be able to Adjust the Scaling of the two Usercontrols. so if they wish to see More or less of one side or the other, they can just Click & Slide a Divider bar so they can adjust their view to their personal preferences.

ETA: New Code

    MasterDock.Children.Clear();
    Grid SplittableGrid = new Grid();
    GridSplitter MovableDevider = new GridSplitter(); MovableDevider.Background = Brushes.Blue; MovableDevider.HorizontalAlignment = HorizontalAlignment.Right; MovableDevider.VerticalAlignment = VerticalAlignment.Stretch; MovableDevider.Width = 5;
    ColumnDefinition LeftDefinition = new ColumnDefinition(); LeftDefinition.Width = new GridLength(200);
    ColumnDefinition RightDefinition = new ColumnDefinition(); RightDefinition.Width = new GridLength(1,GridUnitType.Star);
    SplittableGrid.ColumnDefinitions.Add(LeftDefinition);
    SplittableGrid.ColumnDefinitions.Add(RightDefinition);
    Grid.SetColumn(MyFilter, 0);
    Grid.SetColumn(MovableDevider, 0);
    Grid.SetColumn(NewViewer, 1);
    SplittableGrid.Children.Add(MyFilter);
    SplittableGrid.Children.Add(MovableDevider);
    SplittableGrid.Children.Add(NewViewer);


    DockPanel.SetDock(SplittableGrid, Dock.Left);
    MasterDock.Children.Add(SplittableGrid);
Was it helpful?

Solution

in winforms the control you are looking for is the splitcontainer. However in WPF this is done using grid + gridSplitter. both of those controls are in the default toolbox.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top