0

複数のビューでカスタムコントロールを使用しています。そのカスタムコントロールでは、さまざまなビューで使用できる必要がある共通のMenuItemを使用してコンテキストメニューを定義しました。各ビューは、独自のMenuItemによってそのコンテキストメニューを拡張できます。

どうすればこれを達成できますか?既存のコンテキストメニューを置き換えることはできますが、拡張することはできません。

ここでコンテキストメニューのマージについて読みました:http ://wpftutorial.net/ContextMenu.html 。ただし、既存のものとマージする方法は示されていません。

4

1 に答える 1

1

リソースを使用します。window / 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>
于 2013-03-22T06:17:21.793 に答える