【发布时间】:2012-10-09 00:17:56
【问题描述】:
我通过 C# 和 WPF 使用 Dockpanel 来显示 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);
}
以上所有内容均按编码工作。
现在我正在寻找的改变(如果可能的话)
我想知道什么/如何使用户能够调整两个用户控件的缩放。因此,如果他们希望看到或多或少的一侧或另一侧,只需单击并滑动分隔条,以便根据个人喜好调整视图。
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);
【问题讨论】: