日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

我想快速给WPF程序添加托盘菜单

發布時間:2023/12/4 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我想快速给WPF程序添加托盘菜单 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我想...

1 簡單要求:

  • 使用開源控件庫

  • 在XAML中聲明托盤菜單,就像給控件添加ContextMenu一樣

  • 封裝了常用命令,比如:打開主窗體、退出應用程序等

TerminalMACS

我在TerminalMACS中添加了托盤菜單,最終實現的托盤菜單效果:

TerminalMACS中實現的托盤菜單完整效果

2 如何做?

【Step 1】在已創建的WPF項目中,添加HandyControl庫,并安裝:

Nuget中搜索HandyControl

你問我為什么要使用HC控件庫?先看Demo效果:

常規菜單圖形化菜單閃爍的托盤菜單圖標

常用的托盤效果應該都能滿足了吧?而實現這些效果,我們自己要碼的代碼真的不多,因為HC已經封裝了,我們直接使用即可。

【Step 2】在窗體中添加HandyControl命名空間

xmlns:hc="https://handyorg.github.io/handycontrol"

【Step 3】聲明托盤菜單關鍵的19行代碼

<hc:NotifyIcon x:Name="NotifyIconContextContent" Text="{markup:I18n {x:Static i18NResources:Language.AppTitle}}"Visibility="Visible"Icon="/Images/logo.ico"><hc:NotifyIcon.ContextMenu><ContextMenu><MenuItem Command="hc:ControlCommands.PushMainWindow2Top" Header="{markup:I18n {x:Static i18NResources:Language.PushMainWindow2Top}}"/><MenuItem Command="hc:ControlCommands.ShutdownApp" Header="{markup:I18n {x:Static i18NResources:Language.Exit}}"/></ContextMenu></hc:NotifyIcon.ContextMenu><hc:Interaction.Triggers><hc:EventTrigger EventName="Click"><hc:EventToCommand Command="hc:ControlCommands.PushMainWindow2Top"/></hc:EventTrigger></hc:Interaction.Triggers></hc:NotifyIcon>

上面的代碼,一個托盤菜單基本上算完事了,簡單說一下:

  • NotifyIcon為托盤菜單控件,Text顯示托盤菜單名稱,將鼠標放在托盤圖標上,ToolTip顯示該字符串,一般顯示應用程序名稱,如下圖:

托盤菜單顯示應用名稱
  • hc:NotifyIcon.ContextMenu 用于聲明菜單項,本項目目前加了打開主窗體、退出應用程序兩個菜單,而這兩個菜單對應的命令HC已經封裝,方便使用。

  • 另外,單擊托盤菜單,也可彈出應用程序主窗口

【Step 4】手動關閉主窗體時,隱藏而不退出

添加了托盤菜單后,在關閉主窗體時,應該重寫OnClosing事件,隱藏主窗體,而不是直接關閉它。

protected override void OnClosing(CancelEventArgs e){ this.Hide(); e.Cancel = true;}

3 更多參考

更多Demo源碼請參考?HandyControl[1]

本文源碼TerminalMACS[2]

[1]

HandyControl托盤菜單:?https://github.com/HandyOrg/HandyControl/blob/master/src/Shared/HandyControlDemo_Shared/UserControl/Controls/NotifyIconDemoCtl.xaml

[2]

TerminalMACS WPF管理端:?https://github.com/dotnet9/TerminalMACS/blob/master/src/TerminalMACS.Manager/TerminalMACS.ManagerForWPF/TerminalMACS/Views/MainWindow.xaml

總結

以上是生活随笔為你收集整理的我想快速给WPF程序添加托盘菜单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。