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