[WPF] 盾アイコン付きのボタンを作る (続)
先月 28日に、 「簡単に出来るよ~」 と書いたあとで、 サンプルコードを作ったんだけど、 記事にするのをすっかり忘れてました f(^^;
Windows Vista 以降用意された、 システムが持っているアイコン (Shell Icon) を取り出す API SHGetStockIconInfo を使ってリソースを取ってくるコード VistaBridge.UI.StockIcons クラスが Yves Dolce で公開されていますので、 それを使います。
そうしたら、 xaml の先頭で
xmlns:vbu="clr-namespace:VistaBridge.UI"
として、 その名前空間を取り込んでおき、 Image のソースとして
Source="{x:Static vbu:StockIcons.Shield}"
と指定してあげるだけです。
実際にはテンプレートで指定すべきでしょうけど、 直にボタンの中に書くなら、 こんなふう。
Button の中に StackPanel を置き、 その中に Image と TextBlock を並べます。 で、 Image のソースには前述のように StockIcons クラスのプロパティを指定してあげるわけ。
あるいは、 コードから設定するなら、
Image の Source プロパティに、 StockIcons.Shield や StockIcons.MediaBluRay などと、 すきなものを設定してあげるだけです。 ここでは、 てきとーに 3種類のアイコンを切り替えられるようにしてみました。 (MVVM なんてめんどーなことはやってません f(^^; )
なお、 「盾アイコンは UAC のためだけに使うよーに」 (Use for UAC prompts only.) っていうお達しがあります。 濫用はしないでくださいね。
ソースコードはこちら ⇒ StockIconSample20100129.zip (44.3 KB; VS2010用ソリューション)
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
「* プログラミング ( WPF )」カテゴリの記事
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- [VS2010] (続) オプション 「生成されたコードから結果を表示しない」 の挙動不審(2011.08.24)
- う~む… .NET Framework 4 になっても、 IE を操作するのはめんどくさいままなのか!(2010.12.04)
- MSDN マガジン、読んでますか!?(2010.05.27)
- [WPF] 盾アイコン付きのボタンを作る (続)(2010.02.20)
コメント