WPF NotifyIcon 使用 的是winform中的库, 对应的右键菜单也是winform库中的,无法设定样式,以保持和整个系统的右键菜单风格一致。
我们可以自定义个右键菜单在xaml中,然后再NotifyIcon的click事件中判断是不是 点击了右键,然后显示我们定义 的wpf的右键菜单对象即可。
主要代码:
notifyIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(notifyIcon_MouseClick); <Window.Resources>
<ContextMenu x:Key="NotifyIconMenu" Style="{StaticResource ContextMenu}" StaysOpen="False">
<MenuItem Header="打开" Style="{StaticResource MenuItem}"
Name="MenuOpen" Click="MenuOpen_OnClick"/>
<MenuItem Header="退出" Style="{StaticResource MenuItem}"
Name="MenuExit" Click="MenuExit_OnClick"/>
</ContextMenu>
</Window.Resources> /// <summary>
/// 鼠标单击
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void notifyIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
{
//如果鼠标左键单击
if (e.Button == MouseButtons.Right)
{
System.Windows.Controls.ContextMenu NotifyIconMenu = (System.Windows.Controls.ContextMenu)this.FindResource("NotifyIconMenu");
NotifyIconMenu.IsOpen = true;
}
}

本文介绍如何在WPF中为NotifyIcon设置自定义的右键菜单样式,以保持与系统风格一致。通过在XAML中定义右键菜单,并在NotifyIcon的点击事件中判断和显示WPF的右键菜单对象。
7908

被折叠的 条评论
为什么被折叠?



