【发布时间】:2012-09-19 19:38:43
【问题描述】:
我正在尝试使用本地资源将图标放入按钮中。 (C# Visual Studio 2012)
在我的项目中,我有一个名为“Resources”的文件夹,其中包含“Icons/MyIcon.png”
以下代码有效(但未使用相对路径)
<Button Width="20" Height="20">
<Button.Background>
<ImageBrush ImageSource="C:\Documents\MyProject\Resources\Icons\MyIcon.png">
</ImageBrush>
</Button.Background>
但是,我希望它使用相对路径...所以我尝试了以下
<ImageBrush ImageSource="..\MyProject\Resources\Icons\MyIcon.png">
它编译,但随后给我错误:
{"Cannot locate resource 'myproject/resources/icons/myicon.png'."}
然后我找到了一篇文章,谈到引用该项目并说要做:
"/[ assembly name ];component[ path within the project ]"
所以我尝试了:
<ImageBrush ImageSource="/MyProject;component\Resources\Icons\MyIcon.png">
但它不起作用。
它确实显示在 GUI-Builder 中...但是当我实际尝试“调试”代码时...它无法运行。
如果我通过添加“123”来更改路径,例如:
<ImageBrush ImageSource="/MyProject;component\Resources\Icons\MyIcon123.png">
我得到一个预编译错误:“找不到指定的文件”。 一旦我删除了“123”,错误就会消失。并且图标再次显示在表单中。 但是当我跑步时......我仍然得到:
{"Cannot locate resource 'resources/icons/myicon.png'."}
发生了什么事?为什么它只能在运行之前找到资源?而不是我真正开始的时候?
【问题讨论】:
-
"但是,我希望它使用相对路径...所以我尝试了以下":首先要考虑的是这个文件是否被声明为嵌入资源或独立内容。如果这是一个内容,那么this solution works.
标签: c# wpf xaml visual-studio-2012 imagesource