如何在.NET中创建和使用资源

Mat*_*ley 180 c# resources icons visual-studio

如何轻松创建可以在程序的各个部分引用和使用的资源?

我的具体问题是我有一个NotifyIcon,我想根据程序的状态更改图标.一个常见的问题,但我长期以来一直在苦苦挣扎.

Mat*_*ley 301

好吧,在搜索了周围的StackOverflow(gee,我已经喜欢这个地方)之后的各个点之后,大多数问题已经过了这个阶段.我确实设法解决了我的问题.

如何创建资源.

就我而言,我想创建一个图标.这是一个类似的过程,无论您想要添加哪种数据作为资源.

  • 右键单击要添加资源的项目.在Solution Explorer中执行此操作.从列表中选择"属性"选项.
  • 单击"资源"选项卡.
  • 条形图顶部的第一个按钮将允许您选择要添加的资源类型.它应该从字符串开始.我们想要添加一个图标,因此单击它并从选项列表中选择"图标".
  • 接下来,转到第二个按钮"添加资源".您可以添加新资源,或者如果您已经创建了一个图标,也可以添加它.按照提示选择您选择的任何选项.
  • 此时,您可以双击新添加的资源进行编辑.注意,资源也显示在解决方案资源管理器中,双击那里也同样有效

如何使用资源.

很棒,所以我们有了新的资源,我们渴望拥有那些可爱的变化图标......我们如何做到这一点?好吧,幸运的是,C#让这非常容易.

有一个名为的静态类Properties.Resources可以让您访问所有资源,因此我的代码最终变得如此简单:

paused = !paused;
if (paused)
    notifyIcon.Icon = Properties.Resources.RedIcon;
else
    notifyIcon.Icon = Properties.Resources.GreenIcon;
Run Code Online (Sandbox Code Playgroud)

完成!菲尼斯!当你知道怎么样时,一切都很简单,不是吗?

  • 谢谢你,正在寻找完全相同的东西。有没有办法将 .ico 文件嵌入到可执行文件中,以便它们不会显示为单独的文件?我希望我的问题有意义。问候, (2认同)
  • @Andrei:这正是资源。添加后,它将作为编译后的 exe 的一部分嵌入。 (2认同)
  • 在 VB.NET 中,通过例如“My.Resources.GreenIcon”访问资源 (2认同)

Qui*_*iex 8

上面并没有像我在Visual Studio 2010中预期的那样对我有用.它不会让我访问Properties.Resources,说由于权限问题而无法访问.我最终不得不更改资源属性中的持久性设置,然后我找到了如何通过Resources.Designer.cs文件访问它,它有一个自动获取器,让我通过My​​Namespace.Properties.Resources访问该图标.NameFromAddingTheResource.返回一个Icon类型的对象,准备好使用.


Chu*_*way 6

上述方法效果很好.

另一种方法(我在这里假设web)是创建你的页面.向页面添加控件.然后在设计模式下,转到:工具>生成本地资源.资源文件将自动出现在解决方案中,页面中的所有控件都映射到资源文件中.

要为其他语言创建资源,请在扩展名(Account.aspx.en-US.resx,Account.aspx.es-ES.resx ...等)之前将4个字符的语言附加到文件名的末尾.

要检索代码隐藏中的特定条目,只需调用此方法:GetLocalResourceObject([resource entry key/name]).