Установите изображение в элементе управления NotifyIcon из кода позади или в XAML

я использую NotifyIcon из WindowsForms, потому что в WPF у нас нет такого элемента управления, но тот, что в WinForms, работает нормально, моя проблема заключается только в установке изображения в качестве значка в NotifyIcon, когда изображение находится в проекте.

У меня есть изображение в папке с именем «Изображения» в моем проекте, файл изображения вызывает «notification.ico».

Вот мой NotifyIcon:

System.Windows.Forms.NotifyIcon sysIcon = new System.Windows.Forms.NotifyIcon() 
{
    Icon = new System.Drawing.Icon(@"/Images/notification.ico"),
    ContextMenu = menu,
    Visible = true
};

Что я здесь делаю неправильно?

И могу ли я создать свой NotifyIcon в XAML, а не в Code Behind? Если это возможно, как я могу это сделать?

Заранее спасибо!


person Miguel    schedule 22.04.2011    source источник


Ответы (1)


System.Drawing.Icon не поддерживает схему URI pack://, используемую для ресурсов WPF. Вы также можете:

  • включите свой значок в качестве встроенного ресурса в файл resx и используйте сгенерированное свойство напрямую:

    System.Windows.Forms.NotifyIcon sysIcon = new System.Windows.Forms.NotifyIcon() 
    {
        Icon = Properties.Resources.notification,
        ContextMenu = menu,
        Visible = true
    };
    
  • или загрузите его вручную из URI следующим образом:

    StreamResourceInfo sri = Application.GetResourceStream(new Uri("/Images/notification.ico"));
    System.Windows.Forms.NotifyIcon sysIcon = new System.Windows.Forms.NotifyIcon() 
    {
        Icon = new System.Drawing.Icon(sri.Stream),
        ContextMenu = menu,
        Visible = true
    };
    
person Thomas Levesque    schedule 22.04.2011