0

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

1 に答える 1

1

WinFormsでは、探しているコントロールはsplitcontainerです。ただし、WPFでは、これはgrid+gridSplitterを使用して行われます。これらのコントロールは両方ともデフォルトのツールボックスにあります。

于 2012-10-09T01:42:59.607 に答える