国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Windows 7 任務欄開發之進度條(Progress Bar)

瀏覽:2日期:2023-05-31 15:08:36

上一篇我們完成了“覆蓋圖標(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); }

閃動效果

出處: http://www.cnblogs.com/gnielee/

標簽: Windows系統
相關文章:
主站蜘蛛池模板: 男女很舒服爽视频免费 | 国产三级小视频在线观看 | 欧美日韩一区二区三区免费不卡 | 亚洲欧美日韩成人一区在线 | 国产深夜福利视频网站在线观看 | 99国产精品久久久久久久日本 | 大量愉拍情侣在线视频 | 呦女精品视频 | 国产精品合集一区二区 | 欧美福利一区二区三区 | 真实国产精品视频国产网 | 久草网站| 91久久精品国产免费一区 | 成人免费观看国产高清 | 中国欧美一级毛片免费 | 久久精品视频免费在线观看 | 欧美a大片| 国产无套视频在线观看香蕉 | 美国一级毛片完整高清 | 欧美日韩在线观看精品 | 一级毛片在线播放 | 韩国毛片免费 | 久久99精品视香蕉蕉 | 日韩一级欧美一级毛片在 | 亚洲国产网址 | 日本成人在线视频网站 | 碰碰碰免费公开在线视频 | 最新精品在线视频 | 欧美亚洲第一区 | 成人综合国产乱在线 | 国产一区二区三区在线观看影院 | 成人免费大片黄在线观看com | 久久99热只有视精品6国产 | 黄色美女免费看 | 久久久综合久久 | 精品老司机在线视频香蕉 | 91国内精品久久久久影院优播 | 欧美高清色视频在线播放 | 亚洲品质自拍视频网站 | 国产成人免费观看 | 99在线精品视频免费观里 |