Как я использую значок, который является ресурсом в WPF?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

67
задан Dave Clemmer 26 July 2011 в 16:27
поделиться

4 ответа

Ваш файл значка должен быть добавлен к одному из Ваших блоков проекта, и его Действие Сборки должно быть установлено на Ресурс. После добавления ссылки на блок можно создать NotifyIcon как это:

System.Windows.Forms.NotifyIcon icon = new System.Windows.Forms.NotifyIcon();
Stream iconStream = Application.GetResourceStream( new Uri( "pack://application:,,,/YourReferencedAssembly;component/YourPossibleSubFolder/YourResourceFile.ico" )).Stream;
icon.Icon = new System.Drawing.Icon( iconStream );
102
ответ дан user13125 24 November 2019 в 14:35
поделиться

Ну, Вы не хотите использовать ресурсы стиля resx: Вы просто придерживаетесь, ico файл в Вашем проекте в папке (позволяет, говорят "Иллюстрации"), и в свойствах, установите Действие Сборки на "Ресурсы"...

Затем можно сослаться на него в XAML, использующем ПАКЕТ URIs... "pack://приложение:/Artwork/Notify.ico"

Посмотрите здесь: http://msdn.microsoft.com/en-us/library/aa970069.aspx и образец

, Если Вы хотите быть немного больше... Подобный WPF, необходимо изучить проект WPF Contrib на CodePlex, который имеет контроль NotifyIcon, который можно создать в XAML и который использует стандартные меню WPF (таким образом, можно засунуть "что-либо" в меню).

12
ответ дан Jaykul 24 November 2019 в 14:35
поделиться

Я создал проект здесь и использовал встроенный ресурс (действие сборки было установлено на Встроенный Ресурс, а не просто ресурс). Это решение не работает с Ресурсом, но можно быть в состоянии управлять им. Я поместил это на OnIntialized (), но он не должен идти туда.

//IconTest = namespace; exclamic.ico = resource 
System.IO.Stream stream = this.GetType().Assembly.GetManifestResourceStream("IconTest.Resources.exclamic.ico");

   if (stream != null)
   {
       //Decode the icon from the stream and set the first frame to the BitmapSource
       BitmapDecoder decoder = IconBitmapDecoder.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.None);
       BitmapSource source = decoder.Frames[0];

       //set the source of your image
       image.Source = source;
    }
1
ответ дан blackSphere 24 November 2019 в 14:35
поделиться

Обычный шаблон использования - иметь такой же значок уведомления, что и значок главного окна. Значок определяется как файл PNG.

Для этого добавьте изображение в ресурсы проекта, а затем используйте его следующим образом:

var iconHandle  = MyNamespace.Properties.Resources.MyImage.GetHicon();
this.notifyIcon.Icon = System.Drawing.Icon.FromHandle(iconHandle);

В окне XAML:

<Window x:Class="MyNamespace.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:local="clr-namespace:Seahorse"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="600"
Icon="images\MyImage.png">
20
ответ дан 24 November 2019 в 14:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: