从零开始WPF开发组态(二)

从零开始WPF开发组态(一)

右击菜单

上一节介绍了本次的开发工具,也刚刚创建了一个项目,接下来就要正式开发了。

一开始的构思是在窗口随便一个位置加个按钮,点击出现先要的模型,然后进行拖拽的,但是想到不小心误触肯定会导致模型重叠的问题。想想还是使用右击菜单添加模型吧。
搜索资料了解WPF实现方法,网上有很多,都是使用了 ContextMenu 。

在控件中直接声明

     <Grid.ContextMenu>
            <ContextMenu Name="contextMenu">
                <MenuItem Header="新建">
                    <MenuItem Header="设备" Click="MenuItemClick"/>
                </MenuItem>
            </ContextMenu>
        </Grid.ContextMenu>

但是我发现没有实现成功,上网查询了其他资料,都是这样写的,没有其他的特别的地方,唯一区别是别人不是在 Grid 控件中声明的,难道是这个原因?试了一下还真是。。。。。

换了写法,在Window标签加了右事件
完整代码块

<Window x:Class="ConfigurationApp.Configuration"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ConfigurationApp"
        mc:Ignorable="d"
        Title="Configuration" Height="450" Width="800"  
        Loaded="Window_Loaded"
        MouseRightButtonUp="Window_MouseRightButtonUp">
    <Grid>
        <Grid.ContextMenu>
            <ContextMenu Name="contextMenu">
                <MenuItem Header="新建">
                    <MenuItem Header="设备" Click="MenuItemClick"/>
                </MenuItem>
            </ContextMenu>
        </Grid.ContextMenu>
    </Grid>
</Window>

后台事件 Window_MouseRightButtonUp 代码

        private void Window_MouseRightButtonUp(object sender, MouseButtonEventArgs e) => this.contextMenu.IsOpen = true;

这边代码块写法是使用方法的表达式主体
这样写也是没问题的

        private void Window_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
        {
            this.contextMenu.IsOpen = true;
        }

到此右击菜单功能完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值