開発者またはエンドユーザーがペインを 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: ここにアプリケーション ロジックを追加します } ...