- 浏览: 500027 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
michao:
大哥,还有aperture.exe吗? 发我一份,找不到呀,m ...
使用aperture框架让AS3与C++通信,执行本地代码 -
Aaron-Joe-William:
文件被删除了。下不了。
SQLite 数据库加密的一种解决方案 -
hanmiao:
樓主的文章不就是來自IBM Developers里的http: ...
mina 入门 -
howesen:
断包与粘包问题,需要处理下就好了
mina接收数据不全(2) -
sniciq:
git clone --recursive git://git ...
ESB学习笔记(Spring Integration实战)
上一篇 我们完成了“覆盖图标”(Overlay Icon)的相关开发,本篇我们将对进度条特性进行研究。在使用IE 下载文件时,任务栏图标会同步显示当前下载进度(如下图)。那么在应用程序中如何实现这个效果呢?
下载状态
TaskbarManager.SetProgressValue 方法
在TaskbarManager 类中有三种不同方式使用SetProgressValue 方法来设置进度条当前位置,其中currentValue 为进度条当前位置的参数,maximumValue 为最大参数:
//设置当前窗口 public void SetProgressValue(int currentValue, int maximumValue) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressValue(OwnerHandle, Convert .ToUInt32(currentValue), Convert .ToUInt32(maximumValue)); } //设置指定窗口 public void SetProgressValue(int currentValue, int maximumValue, IntPtr windowHandle) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressValue(windowHandle, Convert .ToUInt32(currentValue), Convert .ToUInt32(maximumValue)); } //设置指定WPF窗口 public void SetProgressValue(int currentValue, int maximumValue, System.Windows.Window window) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressValue( (new WindowInteropHelper (window)).Handle, Convert .ToUInt32(currentValue), Convert .ToUInt32(maximumValue)); }
TaskbarProgressBarState 进度条状态
除了常见的绿色(Normal 正常状态)外,还可以通过调用枚举TaskbarProgressBarState 使用其他几种状态,请参看下表:
NoProgress | 不显示进度条 |
Indeterminate | 不定值进度条(处于滚动状态) |
Normal | 正常状态(绿色) |
Error | 错误状态(红色) |
Paused | 暂停状态(黄色) |
TaskbarManager.SetProgressState 方法
如何为进度条设置以上状态呢?当然TaskbarManager 也同样提供了三种不同的方式使用SetProgressState 方法,对进度条状态进行相应的设置:
//设置当前窗口状态 public void SetProgressState(TaskbarProgressBarState state) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressState(OwnerHandle, (TBPFLAG )state); } //设置指定窗口状态 public void SetProgressState(TaskbarProgressBarState state, IntPtr windowHandle) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressState(windowHandle, (TBPFLAG )state); } //设置指定WPF窗口状态 public void SetProgressState(TaskbarProgressBarState state, System.Windows.Window window) { CoreHelpers .ThrowIfNotWin7(); TaskbarList.SetProgressState( (new WindowInteropHelper (window)).Handle, (TBPFLAG )state); }
效果演示
下面只需要在程序中使用以上方法便可实现对进度条的控制,下面代码通过Slider 调节进度条当前数值:
TaskbarManager .Instance.SetProgressValue((int )progressSlider.Value, 100); TaskbarManager .Instance.SetProgressState( (TaskbarProgressBarState )progressBarStatus.SelectedItem);
通过调整进度条呈现出三种不同的状态效果:
正常状态 错误状态 暂停状态
闪动效果
使用Live Messenger(LM)聊天时,如果对方发出了信息LM 图标会闪动提示,虽然Windows API 没有直接控制闪动效果的方法,但该效果在开发中可能会经常使用,下面代码为一个闪动效果类:
internal sealed class FlashWindowHelper { DispatcherTimer _timer; int _count = 0; int _maxTimes = 0; Window _window; public void Flash(int times, double millliseconds, Window window) { _timer = new DispatcherTimer (); _maxTimes = times; _timer.Interval = TimeSpan .FromMilliseconds(millliseconds); _timer.Tick += OnTick; _window = window; _timer.Start(); } void OnTick(object sender, EventArgs e) { if (++_count < _maxTimes) { Win32 .FlashWindow(new WindowInteropHelper (_window).Handle, (_count % 2) == 0); } else { _timer.Stop(); } } } internal static class Win32 { [DllImport ("user32.dll" )] public static extern bool FlashWindow(IntPtr hwnd, bool bInvert); }
通过FlashWindowHelper 类可以轻松的使任务栏图标闪动起来:
private void flashTaskbar_Click(object sender, RoutedEventArgs e) { FlashWindowHelper helper = new FlashWindowHelper (); helper.Flash(8, 400, Application .Current.MainWindow); }
发表评论
-
RichTextBox 添加控件,被禁用如何处理 button
2010-11-01 18:45 1255WPF中RichTextBox的确非 ... -
归纳一下:C#线程同步的几种方法
2010-10-28 11:18 1285我们在编程的时候,有时会使用多线程来解决问题, ... -
关于WPF ListView数据绑定 入门 及分类,排序
2010-09-03 18:14 9284不多说,先直接上代码 ... -
关于WPF 数据绑定简单介绍及入门
2010-09-02 20:07 5320今天搞了一下午的数据绑定,由于以前用FLEX的数据绑定很 ... -
何为插件化系统,插件化系统有何优势
2010-08-10 14:28 2308当一个软件项目开 ... -
回调函数原理
2010-08-10 12:04 2181回调函数原理 声明CALLBACK 调用(call ... -
C#制作屏幕保护的方法 函数
2010-08-10 10:16 1432本文介绍使用C#制作屏 ... -
初探C# 异常处理
2010-08-03 10:39 1295一、基础 在C# 里,异 ... -
C#中使用try catch对系统性能的影响和处理机制的学习总结!
2010-08-03 10:31 2805问题1:当一段代码被try ... -
C# WebClient上传下载时进度条显示,找了好久才找到的哦!
2010-07-23 11:05 76452、代码: using System; using Sys ... -
WinFrom通过WebClient上传下载文件(带进度条)
2010-07-23 10:48 4255(2009-09-27 12:18:09) 转 ... -
关于图片保存问题
2010-07-15 20:01 967如果你在用PngBitmapEncoder之类的 Save图片 ... -
WPF 新弹出窗口抢焦点问题
2010-06-21 16:34 4058新弹出窗口抢了正在使用的窗口焦点,这个问题烦了好久,今天终于有 ... -
C# 第三方控件
2010-06-08 10:29 2978DevExpress,NetAdvantage 这两套算是最全 ... -
浅析C#中三层架构的实现
2010-06-02 16:14 1586本文讨论如何在C#中实现三层架构,使用MS Acces ... -
数据绑定
2010-05-31 18:42 807http://liutiemeng.blog.51cto.co ... -
C# 修改警告心得
2010-05-22 17:08 13861.(CA1031)如果有try catch最好不要捕获Exc ... -
C# log4net
2010-05-17 13:40 2150说明:本程序演示如何利用log4net记录程序日志信息。log ... -
C# 开机启动
2010-05-13 17:41 1623C# winform程序设置开机 ... -
Base64编码的字符串与图片的转换 C#
2010-04-28 15:05 2805using System; using System.Col ...
相关推荐
MFC 状态栏上显示4中不同效果的进度条 Progress Control
yarn add cli-progress$ npm install cli-progress --save产品特点简单,坚固且易于使用完全可定制的输出格式(可用占位符) 单进度条模式多进度条模式自定义栏字符FPS限制器根据经过时间估算ETA 自定义令牌以在栏中...
原始资源地址:http://www.codeproject.com/KB/statusbar/taskbarctrl.aspx 实现了在任务栏的语言和输入法图标的区域添加自己的控件;
初始化进度条ProgressBar name(char notDoneChar, char doneChar,unsigned int size) ,notDoneChar是开始执行流程之前将填充的进度条,doneChar是进度栏正在处理时填充的进度条完毕。 size是栏的大小。 fillUp() ...
另外,进度条也会显示在任务栏中(通过BrowserWindow的 )。 这使得窗口能够向用户提供进度信息,而用户不必切换到窗口本身。 不确定进度条的任务栏: 确定进度条的任务栏: 目录 ⇒ object ⇒ reference to ...
5.16 Visual C++ 2010 Scroll Bar控件简介与开发 246 5.17 Visual C++ 2010 Hot Key控件简介与开发 248 5.17.1 使用热键控件 248 5.17.2 设置热键 249 5.18 Visual C++ 2010 Animation控件简介与开发 249 5.18.1 ...
5.7 Progress Bar 70 5.7.1 条状进度条 71 5.7.2 圆形进度条 73 5.7.3 对话框进度条 74 5.7.4 标题栏中进度条 75 5.8 SeekBar 76 5.9 RatingBar 78 本章小结 82 第6章 UI高级控件 83 6.1 列表类控件 83 ...
一个React组件,为长时间运行的任务提供Loading Bar(即进度条)。 由组成: React组件-显示加载栏并模拟进度 Redux Reducer —管理商店中的加载栏 (可选)Redux中间件-自动显示和隐藏带有承诺的操作的加载栏 ...
iee.zip 利用Windows API便历系统中的窗口,从中找到浏览器窗口并利用SendMessage改变其地址输入栏中的内容(3KB) 39,docktoolbar.zip 一个类似于Office Toolbar那样可以实现Dock的程序(14KB) 40,cool ...
1,listview.ZIP 演示使用listview控制, 作出资源管理器中目录树中的效果 (7KB) 2,dirview.ZIP 装入整个 c 盘目录到 treeview (4KB) 3,progress.ZIP 演示使用win95的进度条(3KB) 4,progbar.ZIP ...
进度控制, 除了使用<div class="progress-bar progress-bar-success">直接控制进度条的长度外,还可以使用如下功能: <progress value="50" max="100"></progress>以实现进度条的变更控制,从后台获取数据,并计算...