Как создавать и использовать ресурсы в .NET - PullRequest
162 голосов
/ 18 сентября 2008

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

Моя конкретная проблема заключается в том, что у меня есть NotifyIcon, значок которого я хочу изменить в зависимости от состояния программы. Обычная проблема, но с которой я долго боролся.

Ответы [ 3 ]

280 голосов
/ 18 сентября 2008

Ну, после поиска вокруг и объединения различных точек вокруг StackOverflow (ну и дела, я люблю это место уже), большинство проблем уже прошли этот этап. Мне все же удалось найти ответ на мою проблему.

Как создать ресурс:

В моем случае я хочу создать иконку. Это аналогичный процесс, независимо от того, какой тип данных вы хотите добавить в качестве ресурса.

  • Щелкните правой кнопкой мыши проект, в который вы хотите добавить ресурс. Сделайте это в обозревателе решений. Выберите опцию «Свойства» из списка.
  • Перейдите на вкладку «Ресурсы».
  • Первая кнопка в верхней части панели позволит вам выбрать тип ресурса, который вы хотите добавить. Это должно начаться на строке. Мы хотим добавить иконку, поэтому нажмите на нее и выберите «Иконки» из списка вариантов.
  • Далее перейдите ко второй кнопке «Добавить ресурс». Вы можете добавить новый ресурс или, если у вас уже есть значок, вы можете добавить его тоже. Следуйте инструкциям для выбора любого варианта.
  • В этот момент вы можете дважды щелкнуть по вновь добавленному ресурсу, чтобы отредактировать его. Обратите внимание, что ресурсы также отображаются в обозревателе решений, и двойной щелчок там также эффективен.

Как использовать ресурс:

Отлично, у нас есть наш новый ресурс, и мы жаждем иметь эти прекрасные меняющиеся иконки ... Как мы это делаем? Что ж, повезло нам, C # делает это чрезвычайно легко.

Существует статический класс, называемый Properties.Resources, который дает вам доступ ко всем вашим ресурсам, поэтому мой код оказался таким простым:

paused = !paused;
if (paused)
    notifyIcon.Icon = Properties.Resources.RedIcon;
else
    notifyIcon.Icon = Properties.Resources.GreenIcon;

Готово! Законченный! Все просто, когда знаешь как, не так ли?

8 голосов
/ 14 июня 2011

Вышеописанное на самом деле не сработало для меня, как я ожидал в Visual Studio 2010. Оно не позволило мне получить доступ к Properties.Resources, заявив, что оно недоступно из-за проблем с разрешениями. В конечном итоге мне пришлось изменить параметры сохраняемости в свойствах ресурса, а затем я нашел способ доступа к нему через файл Resources.Designer.cs, где у него был автоматический метод получения, позволяющий мне получить доступ к значку через MyNamespace.Properties.Resources .NameFromAddingTheResource. Возвращает объект типа Icon, готовый к использованию.

6 голосов
/ 18 сентября 2008

Приведенный выше метод работает хорошо.

Еще один метод (я предполагаю, что здесь) - создать вашу страницу. Добавить элементы управления на страницу. Затем, находясь в режиме разработки, перейдите: Инструменты> Создать локальный ресурс. Файл ресурса автоматически появится в решении со всеми элементами управления на странице, отображенной в файле ресурса.

Чтобы создать ресурсы для других языков, добавьте 4-символьный язык в конец имени файла перед расширением (Account.aspx.en-US.resx, Account.aspx.es-ES.resx ... и т. Д. ).

Чтобы получить конкретные записи в коде, просто вызовите этот метод: GetLocalResourceObject ([ключ / имя записи ресурса]).

...