WPF-NotifyIcon Найти ресурс не работает - Hardcodet.WPF.TaskbarNotification - PullRequest
0 голосов
/ 08 февраля 2019

Я скачал Hardcodet.WPF.TaskbarNotification добавил изменение кода при запуске приложения, как показано ниже.

   protected override void OnStartup(StartupEventArgs e)
   {
       base.OnStartup(e);
       //create the notifyicon (it's a resource declared in NotifyIconResources.xaml
      tb = (TaskbarIcon)FindResource("MyNotifyIcon");
   }

Я получаю ошибку в FindResource как System.Windows.ResourceReferenceKey Не найдено исключение.Я попытался добавить библиотеку классов NotifyIcon в проект и добавил DLL в качестве ссылки.Все еще получаю ResourceReferenceKeyNotFound Exception.Может ли кто-нибудь помочь.Заранее спасибо.

Привет, я попробовал следующий код.Исключение ResourceReferenceKey устранено.Но на уведомлении двойной щелчок не работает.Может ли кто-нибудь помочь

public App()
    {
        this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
        System.Uri resourceLocater = new System.Uri("/app.xaml", System.UriKind.Relative);
        System.Windows.Application.LoadComponent(this, resourceLocater);
    }

    [STAThread]
    static void Main()
    {           
        App app = new App();
        //var app = new HTM2.HTMAdmin.App();
        //app.InitApplication();            
        app.Run();
    }

    //public void InitApplication()
    //{
    //    ResourceDictionary resColl = Resources;

    //    notifyIcon = TryFindResource("NotifyIcon") as TaskbarIcon;
    //}

    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        //create the notifyicon (it's a resource declared in NotifyIconResources.xaml
        notifyIcon = (TaskbarIcon)FindResource("NotifyIcon");            

    }

1 Ответ

0 голосов
/ 08 февраля 2019

К счастью для вас, у меня была похожая борьба,
Что вы хотите сделать, это использовать

tb = (TaskbarIcon)FindResource("MyNotifyIcon");

После события запуска в 'MainWindow.xaml' или как бы вы это ни называли, лично я сделал это:

public partial class MainWindow : Window
{
    private TaskbarIcon tb; //create as a field to easily access it later

    public MainWindow()
    {
        InitializeComponent();
        this.Visibility = Visibility.Hidden; //Hide the xaml screen
        //initialize NotifyIcon
        tb = (TaskbarIcon)FindResource("MyNotifyIcon");
        tb.Icon = global::MY_ProjectRESX.Properties.Resources.eye1;
    }
}

И в другой заметке, почему вы работаете со старой версией?
есть новая версия под названием: «WPF NotifyIcon» , который очень похож, но в некоторых ситуациях более мощный, с полным и очень полезным учебным пособием и файлами проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...