WPF ContextMenu+VisualTreeHelper实现删除控件操作

Posted 程序猿kid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF ContextMenu+VisualTreeHelper实现删除控件操作相关的知识,希望对你有一定的参考价值。

<UserControl  MouseRightButtonDown="UserControl_MouseRightButtonDown" >
    <UserControl.ContextMenu >

        <ContextMenu Name="menu">
            <MenuItem Header="删除" Click="Delete_Click">
            </MenuItem>
        </ContextMenu>
    </UserControl.ContextMenu>
</UserControl> 
//在xaml用户控件中加入ContextMenu,并添加“删除”MenuItem

 private void UserControl_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            menu.IsOpen = true;
        }
//右键点击事件激发ContextMenu

 private void Delete_Click(object sender, RoutedEventArgs e)
        {
            if (this.Tag != null)
            {
                WrapPanel Wp = VisualTreeHelper.GetParent(this) as WrapPanel;
                if (Wp != null)
                {
                    Wp.Children.Remove(this);
                }
            }
        } //利用VisualTreeHelper找到控件的容器Wrappanel,并删除

以上是关于WPF ContextMenu+VisualTreeHelper实现删除控件操作的主要内容,如果未能解决你的问题,请参考以下文章

WPF ContextMenu DataTemplate MenuItem Visibility 问题

WPF 左键单击弹出菜单 ContextMenu

WPF:将 ContextMenu 绑定到 MVVM 命令

WPF如何去掉ContextMenu的显示和隐藏动画

WPF ContextMenu+VisualTreeHelper实现删除控件操作

[WPF]解决模板中ContextMenu绑定CommandParameter的问题