はじめに
WPFアプリをタスクトレイに常駐させたくなり、便利そうなライブラリがあったので使うことにしました。
Hardcodet NotifyIcon for WPF
ただチュートリアルに沿って試してもicoファイルが参照できず、少し手こずったのでメモ
準備
- VisualStudioからWPF/.NetCoreのプロジェクトを作成
- Nugetマネージャから上記ライブラリをインストール
アイコン追加
コンソールマネージャからWPFプロジェクト上で右クリックし、[プロパティ]を選択
左のタブの[リソース]を選択し、[このプロジェクトには..]を選択してリソースファイルを作成
左上のリソースの種類から[アイコン]を選択し、[リソースの作成]をクリック
アイコンのファイル名が求められるので、今回は適当に"sample"と入力
するとWPFのプロジェクトに"Resources"というディレクトリが作成され、"sample.ico"というファイルが作成されます。
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をクリック
すると下にファイルのプロパティが表示される
またRecourcesにicoファイルを置いた場合、パスの指定が間違っていたので
IconSource="../Recources/sample.ico"
に修正。
こうすることで、正しくicoファイルを参照し、タスクトレイへ表示することができました。