我有以下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。
我该如何解决?
答案 0 :(得分:0)
我认为您必须使用ContextMenuService
来获取对象的ContextMenu。 ContextMenuService提供了返回指定对象的ContextMenu的方法GetContextMenu(DependencyObject)
。
所以在你的情况下你需要写:
DependencyObject objectWithContextMenu = // Control that has a ContextMenu
ContextMenu menu = ContextMenuService.GetContextMenu(objectWithContextMenu);