ローカル リソースを使用して、ボタン内にアイコンを配置しようとしています。(C# ビジュアルスタジオ 2012)
プロジェクト内に直接、「Icons/MyIcon.png」を含む「Resources」というフォルダーがあります。
次のコードは機能します (ただし、相対パスを使用していません)。
<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ビルダーに表示されます...しかし、実際にコードを「デバッグ」しようとすると...実行に失敗します。
たとえば、「123」を追加してパスをまったく変更した場合:
<ImageBrush ImageSource="/MyProject;component\Resources\Icons\MyIcon123.png">
「指定されたファイルが見つかりません」というプリコンパイル エラーが発生します。「123」を削除すると、エラーはなくなります。そして、アイコンが再びフォームに表示されます。しかし、私が実行すると...私はまだ取得します:
{"Cannot locate resource 'resources/icons/myicon.png'."}
何が起こっている?実行前にしかリソースを見つけられないのはなぜですか? 私が実際に始めたときではありませんか?