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。

我已经检查了构建操作 - 它设置为 Page。

我该如何解决?

4

1 回答 1

0

我认为您必须使用ContextMenuService来获取对象的 ContextMenu。ContextMenuService 提供了GetContextMenu(DependencyObject)返回指定对象的 ContextMenu 的方法。

因此,在您的情况下,您需要编写:

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