NotifyIcon 上的 ResourceReferenceKeyNotFoundException
ResourceReferenceKeyNotFoundException on NotifyIcon
我正在使用 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");
}
}
基本上当主 window 最小化时,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
现在的问题是,当我最小化主 window 时,我得到了这个错误:
ResourceReferenceKeyNotFoundException
似乎无法在项目中找到 TestNotifyIcon
。我不知道我做错了什么,我按照教程的所有步骤进行操作,有人可能知道我的错误吗?谢谢。
看来您在错误的位置查找资源。您正在查看 metro window
的 XAML 但是您应该查看 main window
XAML 指定程序使用如下内容查看的位置:(我不是目前在 visual studio)
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");
}
}
我正在使用 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");
}
}
基本上当主 window 最小化时,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
现在的问题是,当我最小化主 window 时,我得到了这个错误:
ResourceReferenceKeyNotFoundException
似乎无法在项目中找到 TestNotifyIcon
。我不知道我做错了什么,我按照教程的所有步骤进行操作,有人可能知道我的错误吗?谢谢。
看来您在错误的位置查找资源。您正在查看 metro window
的 XAML 但是您应该查看 main window
XAML 指定程序使用如下内容查看的位置:(我不是目前在 visual studio)
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");
}
}