バージョン

WinLayoutManager コンポーネントを使用

WinGridBagLayoutManager および WinFlowLayoutManager コンポーネントは、Infragistics.Win アセンブリで公開されます。以下のセクションでは、これらのクラスの機能と実装について説明します。

行レイアウト機能を達成するために、レイアウト エンジンが Win アセンブリに存在します。このクラスは LayoutManagerBase という名前の基本レイアウト マネージャ クラスから派生しています。これは、項目のコレクションおよびそれぞれについて基本レイアウト情報(たとえば、各項目の最小サイズや推奨サイズ)を含むレイアウト エンジンに必要なインフラストラクチャを公開します。

フロー レイアウト マネージャ クラスは、希望のサイズに基づいて左から右に(向きによっては上から下に)項目を整列するシンプルな配置を提供します。GridBagLayoutManager は、追加の制限セットを使用して項目の最適サイズと配置方法を決定します。GridBagLayoutManager は、非表示の列と行のセットを使用して、それらのセルに基づいて項目を配置する方法として見なすことができます。GridBagConstraint の Origin X と Origin Y に基づいて、項目はこれらのセル内に配置されます。各項目は、Span X と Span Y を使用してひとつ以上の列または行をスパンできます。レイアウト マネージャは、Minimum SizePreferred Size だけでなく Insets、Weight X および Weight Y を含む、使用可能な領域に基づいた各列および行の範囲とすべての表示項目の制約を決定します。  GridBagConstraint の Anchor プロパティは項目が 「セル」 の中でどこに位置するかを決定します。Fill プロパティは項目を 「セル」 の限界まで広げるかを決定します。

レイアウトの実装

ControlLayoutManagerBase は、LayoutManagerBase のインスタンスを利用してコントロールを配置するコンポーネントに対して、基本的なフレームワークを提供します。ContainerControl プロパティは、要素によってその子コントロールを配置する親コントロールを示します。このクラスは、.Net エクステンダ プロバイダ アーキテクチャを使用して、ContainerControl に含まれる各コントロールに 3 つのプロパティ(MinimumSize、PreferredSize、IncludeInLayout)を追加します。IncludeInLayout は、コントロールが要素によって操作されるかどうか(サイズと位置を変更されるかどうか)を示します。デフォルト値は True で、関連する ContainerControl に含まれるすべてのコントロールが要素によって操作されます。PreferredSize は、コントロールの最適な表示サイズを示します(デフォルトでは、このサイズはコントロールの現在のサイズになります)。MinimumSize は、コントロールの最小の表示サイズを示します。

Note

注: コントロールの位置のみに影響する特定のレイアウト マネージャは、この情報は利用できません。

Understanding the Layout Managers 02.png

上記の組み込みの .Net 固有のレイアウト関連プロパティと同様に、子コントロールが配置される ContainerControl の領域は、コントロールの DisplayRectangle プロパティによって指定されます。この領域は、コンポーネントの Margins プロパティを使用してさらに調整できます。子コントロールは、ContainerControl の LayoutEvent イベントが呼び出されたとき、また項目のさまざまな制約が変更されたときに自動的に配置されます。要素には、自動配置を一時的に中止するためのメソッド( Suspend Layout と Resume Layout )があります。これは、子コントロールの制約に多くの変更を加える場合に役立ちます(たとえば、最適サイズをすべて変更する場合や、GridBagConstraint の Origin や Span を変更する場合など)。

UltraFlowLayoutManager と UltraGridBagLayoutManager という 2 つのレイアウト エレメントが Misc アセンブリに存在します。

UltraFlowLayoutManager は、FlowLayoutManager を利用してコントロールを配置します。このコンポーネントには、4 つの追加プロパティ(Orientation、Alignment、Horizontal Gap、Vertical Gap)があります。Orientation は、コントロールを水平(左から右)と垂直(上から下)のどちらの方向に配置するかを示します。Alignment プロパティは、たとえば、Orientation が水平に、そして配置がデフォルト値である Center に設定されていて、ひとつの列のすべてのコントロールがコントロールの表示エリアの中でセンタリングされているとき、項目がそれらの論理的な列でどのように配置されるかを決定します。Vertical Gap と Horizontal Gap は、項目間の垂直および水平方向の間隔と、表示領域の端とその内部項目との間隔を決定します。

UltraGridBagLayoutManager は、グリッドの行レイアウト機能のために記述されたものと同じ GridBagLayoutManager エンジンを利用します。このエレメントは、.Net エクステンダ プロバイダ アーキテクチャを使用して、ContainerControl に含まれる各コントロールに GridBagConstraint プロパティを追加します。これは Infragistics.Win.Layout.GridBagConstraint クラスのインスタンスで、項目のサイズと位置を管理するために GridBagLayoutManager によって使用される追加情報を提供します。