[WPF] 托盘菜单的基本功能实现

直接来代码,自己留下一个印记 以后好看!

            NotifyIcon notifyIcon;
            ToolStripMenuItem mMain;
            notifyIcon = new NotifyIcon();
            notifyIcon.BalloonTipText = "共享快捷菜单.";
            notifyIcon.Text = "FLYFI[网络共享]";
            notifyIcon.Icon = ImageResources.NotifyIcon;
            ContextMenuStrip contextMenuStrip = new ContextMenuStrip();
            mMain = new ToolStripMenuItem();
            mMain.Text = "开启共享(Start)";
            mMain.Image = ImageResources.Stoped;
            mMain.Click += mMain_Click;
            contextMenuStrip.Items.Add(mMain);

            ToolStripMenuItem tsm = new ToolStripMenuItem();
            tsm.Text = "重启共享(Rest)";
            tsm.Image = ImageResources.Exit;
            tsm.Click += Rest_Click;
            contextMenuStrip.Items.Add(tsm);

            ToolStripSeparator tSeparator = new ToolStripSeparator();
            contextMenuStrip.Items.Add(tSeparator);

            tsm = new ToolStripMenuItem();
            tsm.Text = "共享设置(Setting)";
            tsm.Image = ImageResources.Setting;
            tsm.Click += Setting_Click;
            contextMenuStrip.Items.Add(tsm);

            tsm = new ToolStripMenuItem();
            tsm.Text = "开机启动(Boot)";
            tsm.Image = ImageResources.Exit;
            tsm.Click += Boot_Click;
            contextMenuStrip.Items.Add(tsm);

            tSeparator = new ToolStripSeparator();
            contextMenuStrip.Items.Add(tSeparator);

            tsm = new ToolStripMenuItem();
            tsm.Text = "完全退出(All Exit)";
            tsm.Image = ImageResources.Exit;
            tsm.Click += AllExit_Click;
            contextMenuStrip.Items.Add(tsm);

            tsm = new ToolStripMenuItem();
            tsm.Text = "退出(Exit)";
            tsm.Image = ImageResources.Exit;
            tsm.Click += Exit_Click;
            contextMenuStrip.Items.Add(tsm);

            tsm = new ToolStripMenuItem();
            tsm.Enabled = false;
            contextMenuStrip.Items.Add(tsm);


            contextMenuStrip.BackColor = new System.Drawing.Color();

            notifyIcon.ContextMenuStrip = contextMenuStrip;

            contextMenuStrip.DropShadowEnabled = false;


            notifyIcon.Visible = true;
            notifyIcon.ShowBalloonTip(2000);
            notifyIcon.MouseClick += notifyIcon_MouseClick;


使用 MVVM 模式实现 WPF ListBox 的右键菜单功能,可以按照以下步骤进行: 1. 在 ViewModel 中创建一个 ICommand 属性,用于处理右键菜单命令,例如: ``` public ICommand ContextMenuItemCommand { get; set; } ``` 2. 在 ViewModel 的构造函数中初始化 ContextMenuItemCommand 属性,并定义命令执行的方法,例如: ``` public ViewModel() { ContextMenuItemCommand = new RelayCommand<string>(ExecuteContextMenuItemCommand); } private void ExecuteContextMenuItemCommand(string command) { switch (command) { case "Copy": // 处理复制命令 break; case "Cut": // 处理剪切命令 break; case "Paste": // 处理粘贴命令 break; default: break; } } ``` 3. 在 XAML 中将 ContextMenuItemCommand 属性绑定到 ListBox 控件的 ContextMenu 中的 MenuItem 控件的 Command 属性,例如: ``` <ListBox> <ListBox.ContextMenu> <ContextMenu> <MenuItem Header="复制" Command="{Binding ContextMenuItemCommand}" CommandParameter="Copy" /> <MenuItem Header="剪切" Command="{Binding ContextMenuItemCommand}" CommandParameter="Cut" /> <MenuItem Header="粘贴" Command="{Binding ContextMenuItemCommand}" CommandParameter="Paste" /> </ContextMenu> </ListBox.ContextMenu> </ListBox> ``` 4. 运行程序并在 ListBox 上右键单击以查看菜单。 这样,当用户在 ListBox 上右键单击时,将会显示一个包含复制、剪切和粘贴菜单项的上下文菜单,并且当用户选择其中的菜单项时,会触发 ViewModel 中定义的 ContextMenuItemCommand 命令,并执行相应的命令处理方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值