WPF:小功能右键MouseRightButtonUp

右键菜单显示事件触发

效果图

在这里插入图片描述

需求说明

点击右键出现上方效果,右键菜单触发事件

代码

前台

注意:最好对照https://blog.csdn.net/YiDabing9/article/details/119342411

<TreeView Name="checkView" Grid.Column="0" Margin="0,50,0,0">
        <TreeView.ItemContainerStyle>
            <Style TargetType="{x:Type TreeViewItem}">
                <Setter Property="IsExpanded" Value="{Binding IsExpanded}"></Setter>
            </Style>
        </TreeView.ItemContainerStyle>
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate DataType="{x:Type localCon:CheckTreeView}" ItemsSource="{Binding ChildrenView}">
                <StackPanel Orientation="Horizontal" MouseRightButtonUp="RightUp">
                    <CheckBox IsChecked="{Binding Path=ViewChecked}" 
                     Tag="{Binding Path=ID}" IsTabStop="False" Focusable="False" 
                     HorizontalAlignment="Center" ClickMode="Press" Click="CheckBox_Click"></CheckBox>
                    <TextBlock Foreground="White" FontSize="15" Text="{Binding Path=ViewName}" HorizontalAlignment="Center"/>
                </StackPanel>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
        </TreeView>

其他都不重要,主要右键就是 MouseRightButtonUp="RightUp"这句话

后台

int groupId = 0;
        //右键物标可以纳入其他分组选项
        private void RightUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel st = (StackPanel)sender;
            CheckTreeView ck = (CheckTreeView)st.DataContext;

            if (ck.Parent == null)
            {
                st.ContextMenu = new ContextMenu();
                MenuItem menuAdd = new MenuItem();
                menuAdd.Header = "标绘管理";
                menuAdd.Height = 36;
                menuAdd.Width = 150;
                menuAdd.FontSize = 15;
                menuAdd.Margin = new Thickness(0);
                menuAdd.Padding = new Thickness(0,9,0,0);
                menuAdd.VerticalAlignment = VerticalAlignment.Center;
                menuAdd.HorizontalContentAlignment = HorizontalAlignment.Left;
                menuAdd.BorderThickness = new  Thickness(1);

                menuAdd.Click += new RoutedEventHandler(menuAdd_Click);

                MenuItem menuEdit = new MenuItem();
                menuEdit.Header = "编辑名称";
                menuEdit.Height = 36;
                menuEdit.Width = 150;
                menuEdit.FontSize = 15;
                menuEdit.Margin = new Thickness(0);
                menuEdit.Padding = new Thickness(0, 9, 0, 0);
                menuEdit.VerticalAlignment = VerticalAlignment.Center;
                menuEdit.HorizontalContentAlignment = HorizontalAlignment.Left;
                menuEdit.BorderThickness = new Thickness(1);

                menuEdit.Click += new RoutedEventHandler(menuEdit_Click);

                MenuItem menuDelete = new MenuItem();
                menuDelete.Header = "删除分组";
                menuDelete.Height = 36;
                menuDelete.Width = 150;
                menuDelete.FontSize = 15;
                menuDelete.Margin = new Thickness(0);
                menuDelete.Padding = new Thickness(0, 9, 0, 0);
                menuDelete.VerticalAlignment = VerticalAlignment.Center;
                menuDelete.HorizontalContentAlignment = HorizontalAlignment.Left;
                menuDelete.BorderThickness = new Thickness(1);

                menuDelete.Click += new RoutedEventHandler(menuDelete_Click);

                st.ContextMenu.Items.Add(menuAdd);
                st.ContextMenu.Items.Add(menuEdit);
                st.ContextMenu.Items.Add(menuDelete);
                groupId = Convert.ToInt32(ck.ID.Trim('.'));
            }
            else
            {
                st.ContextMenu = null;

            }
        }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值