我在TerminalMACS中添加了托盤菜單,最終實現的托盤菜單效果:git
【Step 1】在已建立的WPF項目中,添加HandyControl庫,並安裝:github
你問我爲何要使用HC控件庫?先看Demo效果:ide
經常使用的托盤效果應該都能知足了吧?而實現這些效果,咱們本身要碼的代碼真的很少,由於HC已經封裝了,咱們直接使用便可。this
【Step 2】在窗體中添加HandyControl命名空間code
xmlns:hc="https://handyorg.github.io/handycontrol"
【Step 3】聲明托盤菜單關鍵的19行代碼xml
<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>
上面的代碼,一個托盤菜單基本上算完事了,簡單說一下:blog
【Step 4】手動關閉主窗體時,隱藏而不退出事件
添加了托盤菜單後,在關閉主窗體時,應該重寫OnClosing事件,隱藏主窗體,而不是直接關閉它。ip
protected override void OnClosing(CancelEventArgs e) { this.Hide(); e.Cancel = true; }
更多Demo源碼請參考 HandyControl字符串
本文源碼TerminalMACS