1

Devexpressドッキングマネージャーとドッキング可能なパネルを使用して、ウィンドウに3つのパネルを追加しようとしています。現在の結果は次のとおりです。

ここに画像の説明を入力してください

3つのパネルは、希望どおりに配置およびサイズ変更されますが、ウィンドウのサイズを変更すると、内容が正しくサイズ変更されません。この最初の画像は、ウィンドウを埋めることができないPictureboxによってこれを示しています。これを規制する私の現在の試みは次のとおりです:(Panel3はpictureBox1を含むパネルを指します。これはdp3に含まれています。)

  void dp3_SizeChanged(object sender, EventArgs e)
  {
     panel3.Size = panel3.Parent.Size;
     pictureBox1.Width = dp3.Width;
     pictureBox1.Height = dp3.Height;
  }

コントロールウィンドウについても同じことが言えます。ウィンドウが大幅に大きくならない限り表示されないコントロールがあります。

ここに画像の説明を入力してください

コントロールは、ドッキング可能なウィンドウに含まれている4つの個別のパネルに含まれています。

ドッキングおよびサイズ変更するときに、物事を正しいサイズと場所に表示するにはどうすればよいですか?

4

1 に答える 1

3

このDevXの記事-VisualStudio.NETでのサイズ変更可能なWindowsフォームの設計-2参照してください。これは、のレイアウトについて理解するために最も気に入っていますWinforms

フォームのコントロールにプロパティAnchorとプロパティを設定する必要があります。Dock

プロパティは、Anchorコントロールのどのエッジをそのフォームの対応するエッジに「バインド」または「タイ」するかを制御します。
たとえば、に設定Anchorした場合Bottom、コントロールの下端とその親の下端の間の距離は変更されないため、フォームのサイズを変更すると、コントロールは下に移動します。
に設定AnchorするTop | Bottomと、フォームのサイズを変更すると、コントロールのサイズが垂直方向に変更されます。

フォームに合わせてコントロールのサイズを変更するには、Anchorを4辺すべてに設定するか、に設定DockFillます。

コントロールのDockプロパティをに設定できますFill。これにより、コントロールはその親コン​​テナを満たします。

子コントロールのレイアウトを処理するために、まだいくつかのコードを書く必要があるかもしれません。これを行うには、イベントを処理するか、Resizeサイズ変更をサポートするコンテナー(FlowLayoutPanelまたはなどTableLayoutPanel)を使用します。

コントロールのAnchorプロパティを使用します。Top, Bottom, Left, Right,4方向すべての親コントロールに従ってサイズを変更する場合は、おそらくすべての側に設定する必要があります


サイズ変更時にコントロールのアスペクト比を維持する場合は、設計時に既知のアスペクト比であるか、InitializeComponent(の後にフォームのコンストラクターで計算するだけの場合でも、アスペクト比を何らかの方法で保存する必要があります。 )。フォームのサイズ変更イベントで、

于 2012-05-29T05:22:38.883 に答える