我正在使用WPF NotifyIcon,实际上我正在学习如何在系统托盘中显示一个简单的NotifyIcon。实际上,在MainWindow中,我放置了以下代码:
private TaskbarIcon tb;
public MainWindow()
{
InitializeComponent();
}
private void MetroWindow_StateChanged(object sender, EventArgs e)
{
if (WindowState == WindowState.Minimized)
{
tb = (TaskbarIcon)FindResource("TestNotifyIcon");
}
}本质上,当主窗口最小化时,tb应该显示在字典中声明的图标,如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:PrimoCalendarExport.Utils.Resources.UIDictionary"
xmlns:tb="http://www.hardcodet.net/taskbar">
<tb:TaskbarIcon x:Key="TestNotifyIcon"
IconSource="/Utils/Images/Test.ico"
ToolTipText="hello world" />
</ResourceDictionary>此资源字典位于文件夹中,特别是:
Project name
\Utils
\Resources
\Dictionary
\InlineToolTip.xaml现在的问题是,当我最小化主窗口时,我得到了这个错误:
ResourceReferenceKeyNotFoundException
因此,TestNotifyIcon似乎无法定位在项目中。我不知道我做错了什么,我遵循了教程的所有步骤,也许有人知道我的错误?谢谢。
发布于 2016-05-11 10:56:47
似乎您找错了资源的位置。您正在查看metro window的XAML,但是您应该在main window中查找XAML,指定使用如下内容的程序的位置:(我目前不在visual中)
private void MetroWindow_StateChanged(object sender, EventArgs e)
{
if (WindowState == WindowState.Minimized)
{
tb = (TaskbarIcon)this.FindResource("TestNotifyIcon");
}
}或
private void MetroWindow_StateChanged(object sender, EventArgs e)
{
if (WindowState == WindowState.Minimized)
{
tb = (TaskbarIcon)MainWindow.FindResource("TestNotifyIcon");
}
}https://stackoverflow.com/questions/37160474
复制相似问题