WinExplorerBar™ コントロールには Style プロパティがあり、開発者は 3 つの異なる要素のレイアウトおよび動作の中から選択できます。 使用可能なスタイルは以下の 3 通りあります。
ExplorerBar - Windows XP Explorer に装備された ExplorerBar のルック アンド フィールをエミュレートします。
Listbar - Microsoft Outlook と Infragistics UltraListbar 要素に装備された OutlookBar のルック アンド フィールをエミュレートします。
Toolbox - Visual Basic 6 と Visual Studio .NET に装備された Toolbox のルック アンド フィールをエミュレートします。
OutlookNavigationPane - Outlook 2003 に装備されたナビゲーション ペインのルック アンド フィールをエミュレートします。
VisualStudio2005Toolbox -Visual Studio 2005 に装備された Toolbox のルック アンド フィールをエミュレートします。
それぞれのスタイルは互いによく似ていますが、動作やレイアウトに関して以下に示す固有の特性があります。
要素は、使用可能な要素のスペースに可能なかぎり多くのグループを表示します。 すべてのグループを表示するスペースがない場合は、要素をスクロールするためのスクロールバーが表示されます。 スクロールバーが必要に応じて自動的に表示されるかどうかは、要素の Scrollbars プロパティによって決まります。
個々のグループは展開または縮小できます。 展開するとグループの項目領域が表示され、縮小するとグループの項目領域が非表示になります。 グループのヘッダーには展開インジケーターが表示され、グループ ヘッダーをクリックしたときにグループが展開するか、または縮小するかを示します。
各グループはすべての項目を常に表示するため、グループ内にスクロールが必要な項目はありません。
ExplorerBar Style のみを使用すると、列内に配置されたグループを持つことができます。 要素の ColumnCount プロパティを設定すると、要素内にグループを複数列表示できます。 グループの ColumnsSpanned プロパティを設定すると、ひとつのグループを 2 列以上にわたって表示できます。 要素は横方向にはスクロールしないため、列は必ず要素の幅に収まります。 したがって、列の最適な数を決定する際に要素の幅を考慮して、グループを表示できないほど列が狭くならないようにする必要があります。
要素スタイルが ExplorerBar の場合、項目のデフォルト スタイルは「SmallImagesWithText」になります。
Listbar スタイルと Toolbox スタイルではグループのスクロールがサポートされていないため、すべてのグループが常に表示されています。ただし、中の項目が表示されるのは選択グループのみです。 他のグループはすべて、ヘッダーのみの状態になります。 グループのヘッダーをクリックすると、そのグループが選択グループになり、グループが「開いて」中の項目が表示されます。 それまでの選択グループは「閉じます」。 要素の選択グループは常にひとつだけです。
グループのすべての項目を表示できるだけのスペースがない場合は、グループ内で項目をスクロールできます。 Listbar スタイルでは、項目領域の右隅にスクロールボタンが表示されます。 Toolbox スタイルでは、グループのヘッダーに「スクロール アップ」ボタンが表示され、次のグループのヘッダーに「スクロール ダウン」ボタンが表示されます。
キーボードを使用してグループおよび項目間を移動すると、移動先のグループまたは項目がアクティブになります。 アクティブなグループはグループヘッダー内のテキストを囲むフォーカス四角形によって識別され、アクティブな項目は項目テキストを囲むフォーカス四角形によって識別されます。 アクティブにできるのは常にひとつのグループまたは項目だけです。 個々のグループまたは項目が無効な場合、それらがアクティブになることはなく、キーボード ナビゲーションからも除外されます。
グループまたは項目がアクティブなときに Enter キーまたはスペース バーを押すと、グループ ヘッダーまたは項目をクリックしたときと同じ効果が得られます。 そのため、キーボードのみを使用して要素内を移動し、グループと項目を選択できます。
要素スタイルが Listbar の場合、項目のデフォルト スタイルは「LargeImagesWithText」になります。 要素スタイルが Toolbox の場合、項目のデフォルト スタイルは「LargeImages」になります。
Listbar および Toolbox 要素スタイルと同様に、常にひとつのグループのみが開き、そのグループが「カレント」になります。 この選択されたグループは、その項目を表示するグループのみです。 スタイルを OutlookNavigationPane に設定すると、要素のクライアント領域が、移動可能なスプリッタ バーによって次の 2 つに分割されます。
カレント グループ領域 - 現在選択されているグループの項目は要素の上部に表示されます。 カレント グループ領域に割り当てられるスペースの量は、NavigationCurrentGroupAreaMinHeight プロパティと NavigationMaxGroupHeaders プロパティによって決まります。
ナビゲーション領域 - 要素の下部に、選択されたグループを含む各グループのヘッダーとボタンが表示されます。 現在選択されているグループは選択した外観を使用して表示されます。 ナビゲーション領域でグループのヘッダーまたはボタンをクリックすると、そのグループがカレント選択グループになります。 ナビゲーション領域はさらに次の 2 つの領域に分割されます。
ナビゲーション グループ ヘッダー領域 - 各グループのヘッダーは通常のグループ ヘッダーと同じ UI を使用して表示されます。 グループを選択すると、そのグループが「カレント グループ」になります。カレント グループは ナビゲーション グループ ヘッダー領域 にそのまま残り、選択された外観を使用して表示されます。 各グループのヘッダーは、Groups コレクション内の位置に基づいて ナビゲーション グループ ヘッダー領域 で上から下に表示されます。 スプリッタ バーを使用して ナビゲーション グループ ヘッダー領域 のサイズを変更し、この領域にナビゲーション グループ ヘッダーがひとつも含まれないようにすると、この領域は見えなくなります(つまり、領域の高さが 0 になります)。 この場合は、すべてのボタンが ナビゲーション オーバーフロー領域 に「押し出され」ます。
ナビゲーション オーバーフロー領域 - ナビゲーション グループ ヘッダー領域 に収まらない各グループの ナビゲーション オーバーフロー ボタン が、ナビゲーション領域の下部にあるツールバー状の行に表示されます。 この領域は領域内にボタンがなくても常に表示されます。 ナビゲーション オーバーフロー ボタン領域 には、スペースが足りないためにナビゲーション グループ ヘッダー領域に表示できない各グループのボタンが、Groups コレクション内の順序に従って左から右に表示されます。 ナビゲーション オーバーフロー ボタン領域 の幅が狭くてすべてのボタンが表示されない場合は、ボタンが右から順に除去されて QuickCustomize ポップアップ メニューに追加されます。
GroupSettings オブジェクトには、グループの外観と動作を制御するさまざまなプロパティがあります。 GroupSettings オブジェクトは Group オブジェクトと要素自体の両方に存在します。
GroupSettings オブジェクトのほとんどのプロパティには [デフォルト] 設定があるため、要素の GroupSettings オブジェクトでプロパティを設定し、特定のグループの Group の GroupSettings オブジェクトでそれらの設定を選択的にオーバーライドできます。 これにより、グループの外観と動作を柔軟に設定できます。
ItemSettings オブジェクトには、項目の外観と動作を制御するさまざまなプロパティがあります。 ItemSettings オブジェクトは、Item オブジェクト、Group オブジェクト、および要素自体に存在します。
ItemSettings オブジェクトのほとんどのプロパティには [デフォルト] 設定があるため、要素とグループの ItemSettings オブジェクトの両方またはいずれか一方でプロパティを設定し、次に Group オブジェクトと Item の ItemSettings オブジェクトの両方またはいずれか一方でそれらの設定を選択的にオーバーライドできます。 これにより、項目の外観と動作を柔軟に設定できます。
UltraExplorerBar のグループは項目の「入れ物」として働きます。 グループにはグループ名と画像を表示する ヘッダー と、グループに定義された項目を表示する 項目領域 があります。 要素スタイルが ExplorerBar の場合は、グループを展開または縮小する際にクリックする矢印のグラフィックもあります。
UltraExplorerBar 要素には、デザインタイムに UltraExplorerBar デザイナーを通じて、またはランタイムにコードを通じて、 いくつでもグループを追加 できます。
注: 要素スタイルが Listbar および Toolbox の場合は、要素に追加するグループの数に 実質的な制限 があります。 これは、要素スタイルが Listbar および Toolbox の場合、 すべて のグループ ヘッダーが 常に 表示されることによります。これらの要素スタイルではグループはスクロールしないため、グループの表示に使用できる画面領域が固定されます。
GroupSettings オブジェクトには、グループのスタイルを決定する Style プロパティがあります。 グループのスタイルは、グループの項目領域に何が表示されるかを決定します。 また、項目がグループの項目領域に表示されているときに、それらの項目が項目領域内でどのようにレイアウトされるかも決定します。
使用可能なグループ スタイルは次のとおりです。
デフォルト - 要素スタイルに基づいて、グループ スタイルが自動的に選択されます。 要素スタイルとそれに対応するデフォルトのグループ スタイルのリストを次に示します。
要素スタイル ExplorerBar - グループ スタイル「SmallImagesWithText」を使用します。
要素スタイル ListBar - グループ スタイル「LargeImagesWithText」を使用します。
要素スタイル Toolbox - グループ スタイル「LargeImages」を使用します。
要素スタイル OutlookNavigationPane - グループ スタイル「SmallImagesWithText」を使用します。
要素スタイル VisualStudio2005Toolbox - グループ スタイル「SmallImagesWithText」を使用します。
SmallImages - 項目の小さい画像によってグループ内の項目が表されます。 項目は行および列形式で左から右、上から下に整列されます。 このスタイルは通常、要素スタイルが「Toolbox」のときに使用されます。
SmallImagesWithText - 項目の小さい画像とテキストによってグループ内の項目が表されます。 テキストは画像の右に表示されます。 項目は、他の項目の上にひとつずつ、縦に整列されます。 これは要素スタイルが「ExplorerBar」の場合のデフォルト スタイルです。
LargeImages - 項目の大きい画像によってグループ内の項目が表されます。 項目は行および列形式で左から右、上から下に整列されます。 これは要素スタイルが「Toolbox」の場合のデフォルト スタイルです。
LargeImagesWithText - 項目の大きい画像とテキストによってグループ内の項目が表されます。 テキストは画像の右に表示されます。 項目は、他の項目の上にひとつずつ、縦に整列されます。 これは要素スタイルが「Listbar」の場合のデフォルト スタイルです。
LargeImagesWithTextBelow - 項目の大きい画像とテキストによってグループ内の項目が表されます。 テキストは画像の下に表示されます。 項目は、他の項目の上にひとつずつ、縦に整列されます。 このスタイルは通常、要素スタイルが「Listbar」の場合に使用されます。
ControlContainer - グループの項目は存在していても表示されず、代わりに UltraExplorerBarContainerControl がグループ内に自動的に配置されます。 これを使用すると、グループは 任意の .NET WinForms コントロールをホスト できます。
グループの動作は要素スタイルによって異なります。
要素内の使用可能なスペースにできるかぎり多くのグループが表示されます。 すべてのグループを表示できるだけの十分なスペースがない場合は、スクロールバーが表示されます。 スクロールバーが必要に応じて自動的に表示されるかどうかは、要素の Scrollbars プロパティによって決まります。
表示されたグループはすべて展開または縮小できます。 グループを展開すると、その項目領域が表示され、グループを縮小すると、その項目領域が非表示になります。
グループは選択できません。これは Listbar スタイルおよび Toolbox スタイルの動作です。
グループは複数列で表示できます。複数列にすると、グループの表示が要素の幅いっぱいに広がります。
すべてのグループが常に要素に表示されます。グループのスクロールはできません。
常にひとつのグループのみが選択されます。 選択されたグループが開いて項目を表示します。 選択グループに割り当てられるスペースは、非選択グループのヘッダーが表示された後の残りのスペースに基づきます。
グループは展開または縮小できません。これは ExplorerBar スタイルの動作です。
グループのすべての項目を表示できるだけのスペースがない場合は、自動的にスクロール ボタンが表示されます。
要素内の使用可能なスペースにできるかぎり多くのグループが表示されます。 選択したグループが要素の上部に表示され、残りのグループはその下のナビゲーション領域に表示されます。 ナビゲーション領域にグループを表示できるだけのスペースがない場合、そのグループは QuickCustomize フライアウト メニューに表示されます。このメニューにはナビゲーション オーバーフロー ボタン領域にある QuickCustomize ボタンからアクセスできます。
常にひとつのグループのみが選択されます。 選択グループは開いていて(つまり、項目が表示されていて)、カレント グループ領域に表示されます。 カレント グループ領域で選択グループに割り当てられるスペースは、NavigationCurrentGroupAreaMinHeight プロパティと NavigationMaxGroupHeaders プロパティによって決まります。 選択グループは、ナビゲーション グループ ヘッダー領域(グループ ヘッダーとして)またはナビゲーション オーバーフロー ボタン領域(ボタンとして)のどちらかにも表示されます(スペースが許す場合)。
グループは展開または縮小できません。これは ExplorerBar スタイルの動作です。
カレント グループ領域に選択グループのすべての項目を表示できるだけのスペースがない場合は、グループの項目領域に自動的にスクロール ボタンが表示されます。
グループ選択 は、要素スタイルが Listbar、Toolbox、または OutlookNavigationPane の場合のみ有効な概念です。 「選択されたグループ」は、現在「開いていて」、その項目を表示しているグループと定義されます。 選択できるのは常にひとつのグループだけです。
グループの 展開/縮小 は、要素スタイルが ExplorerBar の場合のみ有効です。 グループを展開すると、その項目領域が表示されます。 グループを縮小すると、その項目領域が非表示になります。 一度に展開または縮小できるグループの数には制限はありません。
UltraExplorerBar の項目は、所属するグループの項目領域に表示されます。 項目にはテキストが含まれ、オプションでイメージを含めることができます。 項目を含むグループに割り当てられたスタイルによって、その項目の表示方法が決まります。 使用可能なグループ スタイルには多数の異なる種類があります。
たとえば、項目を含むグループのスタイルが「LargeImagesWithText」の場合、その項目は項目の大きい画像(割り当てられている場合)で表示され、右に項目のテキストが表示されます。
項目はいくつかの異なるスタイルで表示できます。 ItemSettings オブジェクトの Style プロパティは、項目のスタイルを決定します。 使用可能な項目スタイルは次のとおりです。
Button - 項目はボタンのように動作し、マウスでクリックすると Click イベントが発生します。
StateButton - 項目はオプション ボタンのように動作し、マウスでクリックするとチェック状態が切り替わります。 項目の Checked プロパティの値はその項目のチェック状態を反映します。 要素の StateButtonCheckStyle プロパティによって、StateButton 型の項目が切り替えられる範囲を決定します。 StateButtonCheckStyle の設定は次のとおりです。
Default - 要素スタイルに基づいて、StateButtonCheckStyle の値が自動的に設定されます。
ExplorerBar、Listbar、OutlookNavigationPane、および VisualStudio2005Toolbox - StateButtonCheckStyle として「ExclusiveWithinControl」が使用されます。
Toolbox - 使用される StateButtonCheckStyle は「ExclusiveWithinGroup」です。
ExclusiveWithinControl - 常に要素内のすべてのグループでチェックできる StateButton 型項目はひとつだけです。
ExclusiveWithinGroup - 常にチェックできるのはグループあたりひとつの StateButton 型項目です。
Label - 項目はラベルのように動作します。 テキストが表示されますが、マウスでクリックしても反応せず、状態も変わりません。
Separator - 項目はメニューのセパレーターのように動作します。 1 ピクセルの線が表示されますが、マウスでクリックしても反応せず、状態も変わりません。ItemSettings オブジェクトの SeparatorStyle プロパティによって、垂直と水平のどちらのセパレーターが表示されるかが決まります。
OutlookNavigationPane 要素スタイルでは、エンドユーザーおよび開発者は特別な組み込みダイアログを使用できます。 エンドユーザーは [ナビゲーション ペイン オプション] ダイアログを使用して、個々のグループの表示/非表示を切り替えたり、グループの順序を変更したりできます。
[ナビゲーション ペイン オプション] ダイアログの主な機能は次のとおりです。
グループが画面に表示される順序で一覧表示されます。これは、Groups コレクション内での順序と同じです。 各グループの横に、グループの表示/非表示を示すチェックボックスがあります。
要素の NavigationAllowGroupReorder プロパティが True に設定されている場合は、リスト内でのグループの順序を変更するための [上に移動] ボタンと [下に移動] ボタンがダイアログに表示されます。
グループの GroupSettingsResolved オブジェクトの NavigationAllowHide プロパティが True を返す場合、ユーザーはグループの横にあるチェックボックスを ON/OFF してグループの表示/非表示を切り替えることができます。 このプロパティが False の場合は、チェックボックスは表示されますが、クリックしても設定は変更されず、対応するグループの表示状態も変わりません。
各グループの順序をデフォルトにリセットする機能はアプリケーションで定義します。 そのため、[リセット] ボタンはデフォルトでは表示されません。 [リセット] ボタンをダイアログに表示するには、NavigationOptionsDialogDisplaying イベントを処理して e.Dialog.ResetButton.Visible プロパティを True に設定する必要があります。 さらに、ボタンがクリックされたときにアプリケーションにとって意味があるリセット機能を提供したい場合には、ボタンの Click イベントのイベント リスナーを追加します。