LoginSignup
0
1

More than 3 years have passed since last update.

WPFプロジェクトでリソースを正しく参照する

Posted at

はじめに

WPFアプリをタスクトレイに常駐させたくなり、便利そうなライブラリがあったので使うことにしました。
Hardcodet NotifyIcon for WPF

ただチュートリアルに沿って試してもicoファイルが参照できず、少し手こずったのでメモ

準備

  1. VisualStudioからWPF/.NetCoreのプロジェクトを作成
  2. Nugetマネージャから上記ライブラリをインストール

アイコン追加

コンソールマネージャからWPFプロジェクト上で右クリックし、[プロパティ]を選択
左のタブの[リソース]を選択し、[このプロジェクトには..]を選択してリソースファイルを作成
image.png

左上のリソースの種類から[アイコン]を選択し、[リソースの作成]をクリック
アイコンのファイル名が求められるので、今回は適当に"sample"と入力
するとWPFのプロジェクトに"Resources"というディレクトリが作成され、"sample.ico"というファイルが作成されます。

image.png

XAML

チュートリアルには以下のように記載があります

MainView.xaml
<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:tb="http://www.hardcodet.net/taskbar"
>
  <Grid>
    <tb:TaskbarIcon
      IconSource="/Icons/Error.ico"
      ToolTipText="hello world" />
  </Grid>
</Window>

今回、icoファイルはRecourcesディレクトリに存在し、ファイル名はsample.icoなので
IconSourceの値を

IconSource="/Recources/sample.ico"

に変更すれば行けそうだ。
と思ったんですが、コンパイラに「見つかりません」と怒られてしまいました

解決策

ソリューションエクスプローラからsample.icoをクリック
すると下にファイルのプロパティが表示される

このプロパティのビルドアクションリソースへ変更
image.png

またRecourcesにicoファイルを置いた場合、パスの指定が間違っていたので

IconSource="../Recources/sample.ico"

に修正。

こうすることで、正しくicoファイルを参照し、タスクトレイへ表示することができました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1