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

我如何创build一个资源,可以轻松地引用和使用我的程序的各个部分?

我的具体问题是,我有一个NotifyIcon,我想根据程序的状态来改变图标。 一个共同的问题,但我一直在努力奋斗很长一段时间。

那么,在围绕StackOverflowsearch周围的各个点之后(我已经喜欢这个地方了),大部分问题已经过了这个阶段。 尽pipe我确实设法解决了我的问题。

如何创build资源。

就我而言,我想创build一个图标。 这是一个类似的过程,不pipe你想添加哪种数据作为资源。

  • 右键单击要添加资源的项目。 在Solution Explorer中执行此操作。 从列表中select“属性”选项。
  • 点击“资源”选项卡。
  • 条形顶部的第一个button可让您select要添加的资源types。 它应该从string开始。 我们要添加一个图标,所以点击它并从选项列表中select“图标”。
  • 接下来,移到第二个button“添加资源”。 你可以添加一个新的资源,或者如果你已经有一个图标,你也可以添加。 根据提示select您select的选项。
  • 此时,您可以双击新添加的资源进行编辑。 请注意,资源也显示在解决scheme资源pipe理器中,双击也同样有效

如何使用资源。

太棒了,所以我们有了新的资源,我们渴望拥有那些可爱的变化的图标…我们如何做到这一点? 好吧,幸运的是,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文件find如何访问该文件,其中有一个自动获取器,可以通过MyNamespace.Properties.Resources访问图标.NameFromAddingTheResource。 这将返回一个Icontypes的对象,随时可以使用。

上述方法效果很好。

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

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

要检索代码隐藏中的特定条目,只需调用此方法:GetLocalResourceObject([资源input键/名称])。