문제

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);
도움이 되었습니까?

해결책

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top