在 WPF 中使用用户控件作为上下文菜单
Using a user control as a context menu in WPF
我创建了一个包含一些网格、按钮和滑块的 WPF 用户控件。我想在我的主应用程序 window 中将此控件用作(或代替)上下文菜单。当用户右键单击鼠标按钮时,我希望显示我的用户控件,而不是带有标准菜单项的普通上下文菜单。
显示用户定义的 WPF 控件而不是上下文菜单的最佳方法是什么?
您可以根据需要定义 ContextMenu
的 ControlTemplate
。试试这个:
<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>
我创建了一个包含一些网格、按钮和滑块的 WPF 用户控件。我想在我的主应用程序 window 中将此控件用作(或代替)上下文菜单。当用户右键单击鼠标按钮时,我希望显示我的用户控件,而不是带有标准菜单项的普通上下文菜单。
显示用户定义的 WPF 控件而不是上下文菜单的最佳方法是什么?
您可以根据需要定义 ContextMenu
的 ControlTemplate
。试试这个:
<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>