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

我的具体问题是我有一个 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 文件访问它,其中它有一个自动 getter,让我可以通过 MyNamespace.Properties.Resources 访问图标.NameFromAddingTheResource。它返回一个 Icon 类型的对象,可供使用。

上面的方法效果很好。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top