Как создавать и использовать ресурсы в .NET.

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

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

Ответ 1

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

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

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

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

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

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

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

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

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

Ответ 2

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

Ответ 3

Вышеуказанный метод работает хорошо.

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

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

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