astel-labs.net

C#などのプログラミングTipsや雑記をつらつらと書くかもしれないブログです。

  • Home
RSS

WPFを使って、Windows7のタスクバーボタンのプログレス表示

Posted on 2010年5月1日 by Nymphaea
No CommentsLeave a comment

FileDownload.zipWindows7では、IEでファイルをダウンロードする際などに、タスクバーボタンに進捗を表示することができます


↑こんな感じ

 

これは.net framework4 でWPFを利用することで、簡単に実装できます

今回は、この実装方法をファイルのダウンロードツールの作成をしながら説明します
(といっても、この処理は数行で実装できるのでダウンロードツールを作った時になんとなく入れてみたサンプルです)

 

作成したツールはこんな感じになります

DownloadUrl には、ダウンロードするファイルのURLを指定します
例)「http://astel-labs.net/tools/FileDownload.zip」
FileName には、ダウンロードした際に付けるファイルの名称を指定します
例)「FileDownload.zip」

このツールは説明用に簡単に作成しているので、最初のファイルのメタ情報取得時にフリーズしたような動きをしますが、その辺が気になるようでしたら改造してみてください

 

ツールの細かい説明はソースコードを見てもらうとして、
タスクバーボタンのコードは以下のようになります

using System.Windows.Shell;

namespace FileDownload
{
    /// <SUMMARY>
    /// MainWindow.xaml の相互作用ロジック
    /// </SUMMARY>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // Windows7のタスクバーボタンのプログレス表示用
            this.TaskbarItemInfo = new TaskbarItemInfo()
            {
                ProgressState = TaskbarItemProgressState.Normal,
                ProgressValue = 0
            };
            //this.TaskbarItemInfo.ProgressState = TaskbarItemProgressState.Normal;
            //this.TaskbarItemInfo.ProgressValue = 0; // 初期値を0にする
        }

        public void ProgressChanged( int ProgressPercentage )
        {
            // タスクバーボタンにダウンロード状況を表示(0.0~1.0の範囲で設定)
            this.TaskbarItemInfo.ProgressValue = (double)ProgressPercentage / 100.0;
        }
    }
}

これだけでタスクボタンにプログレス表示することができます

基本は「System.Windows.Window」クラスの TaskbarItemInfo パラメータに「System.Windows.Shell.TaskbarItemInfo」クラスの ProgressValue パラメータを設定するだけです

ProgressValue パラメータは0.0~1.0の範囲をdouble型で指定します

 

ソースファイル
・FileDownload ( VisualStudio2010、.net framework4 )

Categories: C#, WPF, プログラミング

 

WPFで多重起動防止
さて、何を書こう?

コメントを残す

コメントを投稿するにはログインしてください。

  • 2010年5月
    日 月 火 水 木 金 土
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
    « 4月   6月 »
  • 最近の投稿

    • raspberry pi に nginx をセットアップする
    • VSCode を日本語化する
    • raspberry pi に VSCode をインストールする
    • WindowsのプロダクトIDを取得する
    • SQL Server – money型とdecimal型を併用した金額計算
  • アーカイブ

    • 2020年3月
    • 2016年12月
    • 2014年6月
    • 2014年5月
    • 2013年7月
    • 2012年11月
    • 2012年7月
    • 2012年5月
    • 2012年4月
    • 2011年4月
    • 2011年1月
    • 2010年11月
    • 2010年10月
    • 2010年9月
    • 2010年8月
    • 2010年7月
    • 2010年6月
    • 2010年5月
    • 2010年4月
  • カテゴリー

    • C#
    • jQuery
    • OpenCV
    • raspberry pi
    • SharePoint
    • Silverlight
    • SQL Server
    • WCF
    • WPF
    • プログラミング
    • 未分類
    • 雑記
© astel-labs.net. Proudly Powered by WordPress | Nest Theme by YChong

このブログ内で公開されているソースコードおよびサンプルプログラムに関わるライセンスはすべて修正BSDライセンス(New BSD License)として公開しています。
但し、サンプルプログラムに含まれる外部アセンブリが同様のライセンスとは限りませんので、利用する前に必ずすべてのライセンスの確認を行ってください。