2

次の XAML があります。

<controls:ContextMenuService.ContextMenu>
         <controls:ContextMenu Height="Auto" x:Name="contextMenu">
                   <controls:MenuItem x:Name="AddMenuItem" Header="Add document" 
                                      IsEnabled="True" Click="AddMenuItem_Click">
                   </controls:MenuItem>
            ...

また、コード ビハインドで contextMenu が表示されません (コンパイル エラー「名前 "contextMenu" は現在のコンテキストに存在しません」)。私はそれを見つけようとしました:

ContextMenu menu = FindName("contextMenu") as ContextMenu;

ただし、常に null を返します。

ビルド アクションを確認しました - ページに設定されています。

どうすれば修正できますか?

4

1 に答える 1

0

ContextMenuServiceオブジェクトの ContextMenu を取得するには、 を使用する必要があると思います。GetContextMenu(DependencyObject)ContextMenuService は、指定されたオブジェクトの ContextMenu を返すメソッドを提供します。

したがって、あなたの場合、次のように書く必要があります。

DependencyObject objectWithContextMenu = // Control that has a ContextMenu
ContextMenu menu = ContextMenuService.GetContextMenu(objectWithContextMenu);
于 2012-09-05T09:07:46.750 に答える