C# と WPF を介して Dockpanel を使用して 2 つのユーザー コントロールを表示しています。左の UserControl はフィルター (フィルターと呼ばれる) を持つデータグリッドです。右の 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);
}
上記のすべてはコードどおりに機能します。
今求めている変化(できれば)
ユーザーが2つのユーザーコントロールのスケーリングを調整できるようにする方法/方法を知りたいです。そのため、どちらか一方を多かれ少なかれ見たい場合は、分割バーをクリックしてスライドさせるだけで、個人の好みに合わせて表示を調整できます。
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);