如何将 Click 事件添加到 WPF NotifyIcon 中的上下文菜单按钮?
How to add to Click event to Context Menu buttons in WPF NotifyIcon?
我正在制作一个在 WPF 中具有通知图标的应用程序。我正在使用 HardCodet NotifyIcon. They do have a tutorial on code project,它非常有用,但它没有说明如何在按下上下文菜单中的按钮时设置 OnClick
或 Click
事件。
我已经遍历了 NotifyIcon.ContextMenu.Items
和 NotifyIcon.ContextMenu.Items.GetItemAt(i)
(TaskbarIcon NotifyIcon = (TaskbarIcon) FindResource("MyNotifyIcon")
) 中的每个 属性,但我什么也没找到。我还尝试将按钮类型转换为 MenuItem
并使用它的 Click
事件,但它没有帮助。
这是我的 App.xaml
:
<Application.Resources>
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:tb="http://www.hardcodet.net/taskbar">
<tb:TaskbarIcon x:Key="MyNotifyIcon"
ToolTipText="Hello There">
<tb:TaskbarIcon.ContextMenu>
<ContextMenu Background="White">
<MenuItem Header="Open"/>
<MenuItem Header="Settings"/>
<MenuItem Header="Sign Out"/>
<MenuItem Header="Help"/>
<MenuItem Header="Exit"/>
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon>
</ResourceDictionary>
</Application.Resources>
我需要按钮来控制 MainWindow
例如更改 Visibility
等..
与其他控件没有区别,您只需在每个 MenuItem
.
上设置一个 Click
处理程序即可
<MenuItem Header="Open" Click="Open_OnClick"/>
在您的示例中,您将在 App.xaml.cs
中实现事件处理程序。
public partial class App : Application
{
// ...application code.
private void Open_OnClick(object sender, RoutedEventArgs e)
{
// ...do something.
}
}
您还可以将视图模型作为 DataContext
分配给 TaskbarIcon
并改用命令。
我正在制作一个在 WPF 中具有通知图标的应用程序。我正在使用 HardCodet NotifyIcon. They do have a tutorial on code project,它非常有用,但它没有说明如何在按下上下文菜单中的按钮时设置 OnClick
或 Click
事件。
我已经遍历了 NotifyIcon.ContextMenu.Items
和 NotifyIcon.ContextMenu.Items.GetItemAt(i)
(TaskbarIcon NotifyIcon = (TaskbarIcon) FindResource("MyNotifyIcon")
) 中的每个 属性,但我什么也没找到。我还尝试将按钮类型转换为 MenuItem
并使用它的 Click
事件,但它没有帮助。
这是我的 App.xaml
:
<Application.Resources>
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:tb="http://www.hardcodet.net/taskbar">
<tb:TaskbarIcon x:Key="MyNotifyIcon"
ToolTipText="Hello There">
<tb:TaskbarIcon.ContextMenu>
<ContextMenu Background="White">
<MenuItem Header="Open"/>
<MenuItem Header="Settings"/>
<MenuItem Header="Sign Out"/>
<MenuItem Header="Help"/>
<MenuItem Header="Exit"/>
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon>
</ResourceDictionary>
</Application.Resources>
我需要按钮来控制 MainWindow
例如更改 Visibility
等..
与其他控件没有区别,您只需在每个 MenuItem
.
Click
处理程序即可
<MenuItem Header="Open" Click="Open_OnClick"/>
在您的示例中,您将在 App.xaml.cs
中实现事件处理程序。
public partial class App : Application
{
// ...application code.
private void Open_OnClick(object sender, RoutedEventArgs e)
{
// ...do something.
}
}
您还可以将视图模型作为 DataContext
分配给 TaskbarIcon
并改用命令。