Как создавать и использовать ресурсы в .NET
-
01-07-2019 - |
Вопрос
Как мне создать ресурс, на который можно будет легко ссылаться и использовать его в различных частях моей программы?
Моя конкретная проблема заключается в том, что у меня есть NotifyIcon, значок которого я хочу изменить в зависимости от состояния программы.Распространенная проблема, но я борюсь с ней уже долгое время.
Решение
Что ж, после поиска и объединения различных моментов со StackOverflow (ну и дела, мне уже нравится это место), большинство проблем уже прошли эту стадию.Однако мне удалось найти ответ на мою проблему.
Как создать ресурс:
В моем случае я хочу создать значок.Это аналогичный процесс, независимо от того, какой тип данных вы хотите добавить в качестве ресурса.
- Щелкните правой кнопкой мыши проект, в который вы хотите добавить ресурс.Сделайте это в обозревателе решений.Выберите из списка опцию «Свойства».
- Откройте вкладку «Ресурсы».
- Первая кнопка в верхней части панели позволит вам выбрать тип ресурса, который вы хотите добавить.Он должен начинаться со строки.Мы хотим добавить значок, поэтому нажмите на него и выберите «Значки» из списка вариантов.
- Затем перейдите ко второй кнопке «Добавить ресурс».Вы можете либо добавить новый ресурс, либо, если у вас уже есть значок, вы также можете добавить его.Следуйте подсказкам для любого варианта, который вы выберете.
- На этом этапе вы можете дважды щелкнуть вновь добавленный ресурс, чтобы отредактировать его.Обратите внимание, что ресурсы также отображаются в обозревателе решений, и двойной щелчок там не менее эффективен.
Как использовать ресурс:
Отлично, у нас есть новый ресурс, и нам не терпится увидеть эти милые меняющиеся значки...Как мы это делаем?Что ж, нам повезло, C# делает это чрезвычайно простым.
Существует статический класс под названием Properties.Resources
это дает вам доступ ко всем вашим ресурсам, поэтому мой код оказался таким простым:
paused = !paused;
if (paused)
notifyIcon.Icon = Properties.Resources.RedIcon;
else
notifyIcon.Icon = Properties.Resources.GreenIcon;
Сделанный!Законченный!Все просто, когда знаешь как, не так ли?
Другие советы
Вышеупомянутое на самом деле не сработало для меня, как я ожидал от Visual Studio 2010.Он не позволил мне получить доступ к Properties.Resources, сказал, что он недоступен из-за проблем с разрешениями.В конечном итоге мне пришлось изменить настройки постоянства в свойствах ресурса, а затем я нашел, как получить к нему доступ через файл Resources.Designer.cs, где у него был автоматический метод получения, позволяющий мне получить доступ к значку через MyNamespace.Properties.Resources. .NameFromAddingTheResource.Это возвращает объект типа Icon, готовый к использованию.
Вышеописанный метод работает хорошо.
Другой метод (я предполагаю, что здесь используется Интернет) — создать свою страницу.Добавьте элементы управления на страницу.Затем, находясь в режиме разработки, перейдите к:Инструменты>Создать локальный ресурс.Файл ресурсов автоматически появится в решении со всеми элементами управления на странице, сопоставленными с файлом ресурсов.
Чтобы создать ресурсы для других языков, добавьте четырехсимвольный язык в конец имени файла перед расширением (Account.aspx.en-US.resx, Account.aspx.es-ES.resx... и т. д.).
Чтобы получить определенные записи в выделенном коде, просто вызовите этот метод:GetLocalResourceObject([ключ/имя записи ресурса]).