バージョン

xamContextMenu をページに追加

始める前に

xamContextMenu™ コントロールを使用して、アプリケーションのさまざまなコントロールのためのコンテキスト依存メニューを作成します。たとえば、元に戻すまたはやり直す機能を持つ TextBox コントロールのためのコンテキスト メニューと追加または削除機能を持つ xamGrid コントロールのためのコンテキスト メニューを作成できます。

達成すること

xamContextMenu コントロールをテキスト ボックスに追加する方法を学習します。完成したプロジェクトを実行してテキスト ボックスを右クリックすると、ブラウザーに以下のスクリーンショットに似たコンテキスト メニューが表示されます。

xamContextMenu Getting Started with xamContextMenu 01.png

次の手順を実行します

  1. Microsoft® WPF アプリケーションを作成します。

  2. 以下の NuGet パッケージをアプリケーションに追加します。

    • Infragistics.WPF.Menus

NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。

  1. コード ビハインドに using/Imports のディレクティブを配置するか xamContextMenu の XML 名前空間宣言を追加します。

XAML の場合:

xmlns:ig="http://schemas.infragistics.com/xaml"

Visual Basic の場合:

Imports Infragistics.Controls.Menus

C# の場合:

using Infragistics.Controls.Menus;
  1. TextBox コントロールを、LayoutRoot という名前のデフォルトの Grid レイアウト パネルに追加します。プロシージャー コードでこれを行う場合、ユーザー コントロールの Loaded イベントを処理し、イベント ハンドラーにこのコードを配置することができます。

XAML の場合:

<TextBox Name="textBox1">
    <!--TODO: ContextMenuService クラスの添付 Manager プロパティのタグを宣言します-->
</TextBox>

Visual Basic の場合:

Dim textbox1 As TextBox
Private Sub UserControl_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    textBox1 = New TextBox()
    Me.LayoutRoot.Children.Add(textBox1)
    'TODO: ContextMenuManager オブジェクトをインスタンス化して、TextBox コントロールに添付します
    'TODO: xamContextMenu コントロールのインスタンスを作成します
    'TODO: MenuItem オブジェクトを xamContextMenu コントロールに追加します
End Sub

C# の場合:

private TextBox textBox1;
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
    textBox1 = new TextBox();
    this.LayoutRoot.Children.Add(textBox1);
    //TODO: ContextMenuManager オブジェクトのインスタンスを作成して、TextBox コントロールに添付します
    //TODO: xamContextMenu コントロールのインスタンスを作成します
    //TODO: MenuItem オブジェクトを xamContextMenu コントロールに追加します
}
  1. XAML でこれを実行する場合に ContextMenuService クラスの Manager プロパティのタグを宣言します。ただし、コードでこれを実行する場合には、 ContextMenuManager オブジェクトをインスタンス化して、ContextMenuService クラスの静的な SetManager メソッドを使用してコントロールに添付します。

XAML の場合:

<ig:ContextMenuService.Manager>
    <ig:ContextMenuManager>
        <ig:ContextMenuManager.ContextMenu>
            <!--TODO: ここで xamContextMenu コントロールを追加します-->
        </ig:ContextMenuManager.ContextMenu>
    </ig:ContextMenuManager>
</ig:ContextMenuService.Manager>

Visual Basic の場合:

Dim contextMenuManager1 As New ContextMenuManager()
ContextMenuService.SetManager(textBox1, contextMenuManager1)
'TODO: ContextMenuManager オブジェクトの ContextMenu プロパティを設定します。

C# の場合:

ContextMenuManager contextMenuManager1 = new ContextMenuManager();
ContextMenuService.SetManager(textBox1, contextMenuManager1);
//TODO: ContextMenuManager オブジェクトの ContextMenu プロパティを設定します
  1. xamContextMenu コントロールを作成します。コードでこれを実行する場合、ContextMenuManager オブジェクトの ContextMenu プロパティを必ず設定します。

XAML の場合:

<ig:XamContextMenu>
    <!--TODO: ここに XamMenuItem オブジェクトを追加します-->
</ig:XamContextMenu>

Visual Basic の場合:

Dim xamContextMenu1 As New XamContextMenu()
contextMenuManager1.ContextMenu = xamContextMenu1

C# の場合:

XamContextMenu xamContextMenu1 = new XamContextMenu();
contextMenuManager1.ContextMenu = xamContextMenu1;
  1. 2 つの XamMenuItem オブジェクトを xamContextMenu コントロールに追加します。XAML では、xamContextMenu の Items コレクションのタグを宣言する必要はありません。

    • 最初の XamMenuItem オブジェクトの Header プロパティを「Font」に設定します。

    • 二番目の XamMenuItem オブジェクトの Header プロパティを「Formatting」に設定します。

XAML の場合:

<ig:XamMenuItem Header="Font" />
<ig:XamMenuItem Header="Formatting" />

Visual Basic の場合:

Dim menuItemFont As New XamMenuItem With {.Header = "Font"}
Dim menuItemFormatting As New XamMenuItem With {.Header = "Formatting"}
xamContextMenu1.Items.Add(menuItemFont)
xamContextMenu1.Items.Add(menuItemFormatting)

C# の場合:

XamMenuItem menuItemFont = new XamMenuItem
{
    Header = "Font"
};
XamMenuItem menuItemFormatting = new XamMenuItem
{
    Header = "Formatting"
};
xamContextMenu1.Items.Add(menuItemFont);
xamContextMenu1.Items.Add(menuItemFormatting);
  1. アプリケーションを実行します。機能を追加するために XamMenuItem オブジェクトの Click イベントを処理できます。