我正在使用WPF-NotifyIcon,并且正在关注 本教程,当我将 XAML 代码放入 MainWindow.xaml 时它可以工作,但是一旦我进入“从资源字典创建 NotifyIcon”部分,它就会停止显示托盘。
我有一个 Dictionary1.xaml,其中包含以下代码:
<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">
<!-- Globally declared notify icon -->
<tb:TaskbarIcon x:Key="MyNotifyIcon"
IconSource="/Notifier;component/assets/icon_16x.ico"
ToolTipText="Notifier" MenuActivation="RightClick" Visibility="Visible" />
</ResourceDictionary>
具有以下代码的 App.xaml:
<Application x:Class="Notifier.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary Source="Dictionary1.xaml" />
</Application.Resources>
</Application>
我刚刚从教程的那部分复制了 App 类代码。
我究竟做错了什么?为什么图标不显示?在相关的说明中,我怎样才能拥有一个没有 MainWindow 的程序,而只是从任务栏运行(这对于这个控件来说是理想的)。
编辑:
我从 App.xaml 中取出 StartupUri 并将以下代码放入我的 App.xaml.cs 中:
protected override void OnStartup(StartupEventArgs e) {
base.OnStartup(e);
tb = (TaskbarIcon)FindResource("MyNotifyIcon");
tb.Visibility = Visibility.Visible;
//new MyClassIWantToInstantiate();
}
它工作得很好,但是这样做有什么问题吗?