開発者またはエンドユーザーがペインを xamDockManager™ コントロールの文書領域に追加する場合、小さい三角形のボタンがファイルメニューと呼ばれるタブが付いた文書領域の右上角に表示されます。デフォルトでは、ファイルメニューは文書領域の特定のタブグループ内のすべてのペインをリストし、エンドユーザーがペインを切り替えることを可能にします。TabGroupPane オブジェクトの FilesMenuOpening イベントを処理して、MenuItem オブジェクトを FilesMenuOpeningEventArgs オブジェクトの Items プロパティに追加することによって、自分自身の項目をファイル メニューに追加することもできます。
ファイル メニューに追加するメニュー項目は、Microsoft® Windows® Presentation Foundation のデフォルトのスタイルを使用します。メニュー項目のスタイルと残りのコントロールとの整合性を維持するには、MenuItem オブジェクトの Style プロパティを xamDockManager によって公開されている静的な MenuItemStyleKey プロパティに設定するだけです。これは、ファイル メニューに追加する Separator オブジェクトにも適用されます。ただし、MenuItemStyleKey プロパティを使用する代わりに、 MenuItemSeparatorStyleKey プロパティを使用する必要があります。
以下のコード例は、セパレーターおよびメニュー項目をファイル メニューに追加する方法を示しています。
XAML の場合:
<igDock:XamDockManager
Name="xamDockManager1"
igDock:TabGroupPane.FilesMenuOpening="xamDockManager1_FilesMenuOpening">
<igDock:DocumentContentHost>
<igDock:SplitPane>
<igDock:TabGroupPane>
<igDock:ContentPane Header="Document1.txt" />
<igDock:ContentPane Header="Document2.txt" />
</igDock:TabGroupPane>
</igDock:SplitPane>
</igDock:DocumentContentHost>
</igDock:XamDockManager>
Visual Basic の場合:
Imports Infragistics.Windows.DockManager
Imports Infragistics.Windows.DockManager.Events
...
Private Sub xamDockManager1_FilesMenuOpening(ByVal sender As Object, ByVal e As FilesMenuOpeningEventArgs)
' 自身のメニュー項目と xamDockManager に作成された項目を区別するためのセパレーター
Dim separator1 As New Separator()
' セパレーターのスタイル プロパティを xamDockManager の静的な MenuItemSeparatorStyleKey プロパティに設定します。
separator1.SetResourceReference(StyleProperty, XamDockManager.MenuItemSeparatorStyleKey)
e.Items.Add(separator1)
Dim menuItemSaveAll As New MenuItem()
menuItemSaveAll.Header = "Save All Open Documents"
' メニュー項目のスタイル プロパティを xamDockManager の静的な MenuItemStyleKey プロパティに設定します
menuItemSaveAll.SetResourceReference(StyleProperty, XamDockManager.MenuItemStyleKey)
AddHandler menuItemSaveAll.Click, AddressOf menuItemSaveAll_Click
e.Items.Add(menuItemSaveAll)
End Sub
Private Sub menuItemSaveAll_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
' TODO: ここにアプリケーション ロジックを追加します
End Sub
...
C# の場合:
using Infragistics.Windows.DockManager;
using Infragistics.Windows.DockManager.Events;
...
private void xamDockManager1_FilesMenuOpening(object sender, FilesMenuOpeningEventArgs e)
{
// 自身のメニュー項目と xamDockManager に作成された項目を区別するためのセパレーター
Separator separator1 = new Separator();
// セパレーターのスタイル プロパティを xamDockManager の静的な MenuItemSeparatorStyleKey プロパティに設定します。
separator1.SetResourceReference(StyleProperty, XamDockManager.MenuItemSeparatorStyleKey);
e.Items.Add(separator1);
MenuItem menuItemSaveAll = new MenuItem();
menuItemSaveAll.Header = "Save All Open Documents";
// メニュー項目のスタイル プロパティを xamDockManager の静的な MenuItemStyleKey プロパティに設定します
menuItemSaveAll.SetResourceReference(StyleProperty, XamDockManager.MenuItemStyleKey);
menuItemSaveAll.Click += new RoutedEventHandler(menuItemSaveAll_Click);
e.Items.Add(menuItemSaveAll);
}
private void menuItemSaveAll_Click(object sender, RoutedEventArgs e)
{
// TODO: ここにアプリケーション ロジックを追加します
}
...