将控件添加到WPF中的上下文菜单

时间:2011-08-24 12:29:27

标签: .net wpf contextmenu

我想在WPF项目的某些控件中添加一些上下文菜单。这本身很容易。我想知道是否可以在其中使用textbox或datepicker等控件,就像Access在表格中单击一个单元格时一样,您可以在其中按文本框值进行过滤。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以在ContextMenu内添加您喜欢的内容,而不仅仅是MenuItems。我没想过,但我想当有人右击它时,你可以将它用作Popup。您还可以添加活动等。

<StackPanel>
    <StackPanel.Resources>
        <ContextMenu x:Key="myContextMenu">
            <StackPanel>
                <TextBox Text="Some Text.."/>
                <DatePicker/>
                <Button Content="Click Me" Click="Button_Click"/>
            </StackPanel>
        </ContextMenu>
    </StackPanel.Resources>
    <TextBox Text="Display some controls on right click"
             ContextMenu="{StaticResource myContextMenu}"/>
    <TextBox Text="Display some controls on right click"
             ContextMenu="{StaticResource myContextMenu}"/>
</StackPanel>

在事件处理程序中单击UIElement

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button button = sender as Button;
    StackPanel stackPanel = button.Parent as StackPanel;
    ContextMenu contextMenu = stackPanel.Parent as ContextMenu;
    UIElement elementWithMenu = contextMenu.PlacementTarget;
}