在 WPF 中使用用户控件作为上下文菜单

Using a user control as a context menu in WPF

我创建了一个包含一些网格、按钮和滑块的 WPF 用户控件。我想在我的主应用程序 window 中将此控件用作(或代替)上下文菜单。当用户右键单击鼠标按钮时,我希望显示我的用户控件,而不是带有标准菜单项的普通上下文菜单。

显示用户定义的 WPF 控件而不是上下文菜单的最佳方法是什么?

您可以根据需要定义 ContextMenuControlTemplate。试试这个:

<Window ... xmlns:local="clr-namespace:WpfApplication1">
    <Grid Background="Transparent">
        <StackPanel.ContextMenu>
            <ContextMenu>
                <ContextMenu.Template>
                    <ControlTemplate TargetType="ContextMenu">
                        <local:UserControl1 />
                    </ControlTemplate>
                </ContextMenu.Template>
            </ContextMenu>
        </StackPanel.ContextMenu>

只需将控件添加到 ContextMenu。例如:

<Window>
    <Window.ContextMenu>
        <ContextMenu>
            <local:YourUserControl />
        </ContextMenu>
    </Window.ContextMenu>
</Window>