Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
マイクロソフトの田中達彦です。
今までWindows API Code Packの説明ということで、主に.NET Framework 3.5以前のWindowsフォームを元に説明していました。
.NET Framework 4のWPFはWindows 7のタスクバーの機能をサポートしていますので、その方法を紹介します。
[WPF 4での実装方法]
WPF 4でプログレスバーを使うには、以下のように実装します。
System.Windows.Shell.TaskbarItemInfo myTaskbar = new System.Windows.Shell.TaskbarItemInfo();
// 色を緑に指定
myTaskbar.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Normal;
// 値を0.5(アイコン表示領域の半分)にする
myTaskbar.ProgressValue = 0.5;
TaskbarItemInfo = myTaskbar;
ここでAPI Code Packと違う点は、ProgressValueを設定するときに、0から1までの間の数値を設定するという点です。
[試してみるには]
簡単な実験を行うときには、以下のようにします。
1. Visual Studio 2010を立ち上げ、新規プロジェクトでWPFアプリケーションを選択します。その際、.NET Frameworkのバージョンは4を選択しておきます。
2. フォーム上にSliderを貼り付けます。
3. 貼り付けたSliderをダブルクリックし、生成されたイベントハンドラに以下のコードを記述します。
private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
System.Windows.Shell.TaskbarItemInfo myTaskbar = new System.Windows.Shell.TaskbarItemInfo();
// 色を黄色に指定
myTaskbar.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Paused;
// スライダーの値を反映させる
myTaskbar.ProgressValue = slider1.Value / slider1.Maximum;
this.TaskbarItemInfo = myTaskbar;
}
これで実行すると、以下の図のようにスライダーの動きに合わせてプログレスバーの表示領域が変わります。
赤い色を使用する場合は、ProgressStateを設定する部分で、Pausedの代わりにErrorを指定します。
[Code Packを使用した実装方法]
Windows API Code Packを使用した実装方法は、こちらの記事をご参照ください。
https://blogs.msdn.com/b/ttanaka/archive/2010/10/26/windows-api-code-pack.aspx
[キャンペーン]
Windows 7のタスクバー関連の機能を実装すると、Windows 7アプリ投稿キャンペーンへも応募できるようになります。
ぜひ記事を読んでいただいて、タスクバー関連の機能を実装していただき、キャンペーンにご応募ください。
締切は2010年11月30日です。
マイクロソフト
田中達彦