从自定义控件扩展/合并/共享上下文菜单

时间:2013-03-20 09:54:11

标签: wpf wpf-controls

我在多个视图中使用自定义控件。在该自定义控件中,我使用常见的MenuItem定义了一个上下文菜单,该菜单需要在不同的视图中可用。每个视图都可以通过自己的MenuItem扩展该上下文菜单。

我如何做到这一点?我只能替换exsting上下文菜单,但不能扩展它。

我在这里阅读了关于合并上下文菜单的信息:http://wpftutorial.net/ContextMenu.html。 但它没有说明如何与现有的合并。

1 个答案:

答案 0 :(得分:1)

使用资源。您可以在窗口/ usercontrol的资源中定义所有菜单项,然后使用菜单项的键引用它们。

 <Window.Resources>
    <MenuItem Header="Add sub-folder"
              Command="{Binding FolderNewCmd}"
              x:Key="AddFolderMenu">
        <MenuItem.Icon>
            <Image Source="/YourAssemblyNameSpace;component/Images/16/abc.png"
                   Width="16"
                   RenderOptions.BitmapScalingMode="NearestNeighbor">
            </Image>
        </MenuItem.Icon>
    </MenuItem>
    ...  <--other menu items-->
 <Window.Resources>

如果要在菜单中引用此菜单项(例如上下文菜单):

<TreeView.ContextMenu>
        <StaticResource ResourceKey="AddFolderMenu" />
        <StaticResource ResourceKey="OtherMenuItemInResource" />
        ...
</TreeView.ContextMenu>