Dockpanel中的用户控制分隔符

时间:2012-10-09 00:17:57

标签: c# wpf dockpanel

我通过C#& amp;来使用Dockpanel WPF显示2个用户控件 Left UserControl是一个带过滤器的数据网格(称为过滤器) Right UserControl是一个自定义表单,它将根据用户正在查看的数据类型而改变。

我正在通过此代码设置Dockpanel

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);
        }

以上所有内容均为编码。

现在改变我正在寻找(如果可能的话)

我想知道是什么/如何使用户能够调整两个Usercontrols的缩放比例。因此,如果他们希望看到更多或更少的一方或另一方,他们可以只点击&滑动分隔条,以便他们可以根据个人喜好调整视图。

ETA:新代码

    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);

1 个答案:

答案 0 :(得分:1)

在winforms中,您正在寻找的控件是splitcontainer。但是在WPF中,这是使用grid + gridSplitter完成的。这两个控件都在默认工具箱中。