OpticTygre
OpticTygre

Reputation: 73

Using a user control as a context menu in WPF

I've created a WPF user control that contains some grids, buttons, and sliders. I'd like to use this control as (or in place of) a context menu in my main application window. When a user right-clicks the mouse button, I'd like my user control to be displayed, rather than a normal looking context menu with standard menu items.

What's the best approach to take in displaying a user defined WPF control in place of a context menu?

Upvotes: 2

Views: 1836

Answers (2)

John Cummings
John Cummings

Reputation: 2184

Just add the control to the ContextMenu. For example:

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

Upvotes: 0

mm8
mm8

Reputation: 169150

You could define the ControlTemplate of a ContextMenu however you want. Try this:

<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>

Upvotes: 2

Related Questions