av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Windows 7 任務(wù)欄開(kāi)發(fā)之進(jìn)度條(Progress Bar)

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

上一篇我們完成了“覆蓋圖標(biāo)(Overlay Icon)的相關(guān)開(kāi)發(fā),本篇我們將對(duì)進(jìn)度條特性進(jìn)行研究。在使用IE 下載文件時(shí),任務(wù)欄圖標(biāo)會(huì)同步顯示當(dāng)前下載進(jìn)度(如下圖)。那么在應(yīng)用程序中如何實(shí)現(xiàn)這個(gè)效果呢?

下載狀態(tài)

TaskbarManager.SetProgressValue 方法

在TaskbarManager 類中有三種不同方式使用SetProgressValue 方法來(lái)設(shè)置進(jìn)度條當(dāng)前位置,其中currentValue 為進(jìn)度條當(dāng)前位置的參數(shù),maximumValue 為最大參數(shù):

//設(shè)置當(dāng)前窗口 public void SetProgressValue(int currentValue, int maximumValue) { CoreHelpers.ThrowIfNotWin7(); TaskbarList.SetProgressValue(OwnerHandle, Convert.ToUInt32(currentValue),  Convert.ToUInt32(maximumValue)); }  //設(shè)置指定窗口 public void SetProgressValue(int currentValue, int maximumValue,  IntPtr windowHandle) { CoreHelpers.ThrowIfNotWin7(); TaskbarList.SetProgressValue(windowHandle, Convert.ToUInt32(currentValue),  Convert.ToUInt32(maximumValue)); }  //設(shè)置指定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 進(jìn)度條狀態(tài)

除了常見(jiàn)的綠色(Normal 正常狀態(tài))外,還可以通過(guò)調(diào)用枚舉TaskbarProgressBarState 使用其他幾種狀態(tài),請(qǐng)參看下表:

名稱 描述NoProgress 不顯示進(jìn)度條Indeterminate 不定值進(jìn)度條(處于滾動(dòng)狀態(tài))Normal 正常狀態(tài)(綠色)Error 錯(cuò)誤狀態(tài)(紅色)Paused 暫停狀態(tài)(黃色)

TaskbarManager.SetProgressState 方法

如何為進(jìn)度條設(shè)置以上狀態(tài)呢?當(dāng)然TaskbarManager 也同樣提供了三種不同的方式使用SetProgressState 方法,對(duì)進(jìn)度條狀態(tài)進(jìn)行相應(yīng)的設(shè)置:

//設(shè)置當(dāng)前窗口狀態(tài) public void SetProgressState(TaskbarProgressBarState state) { CoreHelpers.ThrowIfNotWin7(); TaskbarList.SetProgressState(OwnerHandle, (TBPFLAG)state); }  //設(shè)置指定窗口狀態(tài) public void SetProgressState(TaskbarProgressBarState state, IntPtr windowHandle) { CoreHelpers.ThrowIfNotWin7(); TaskbarList.SetProgressState(windowHandle, (TBPFLAG)state); }  //設(shè)置指定WPF窗口狀態(tài) public void SetProgressState(TaskbarProgressBarState state,  System.Windows.Window window) { CoreHelpers.ThrowIfNotWin7(); TaskbarList.SetProgressState( (new WindowInteropHelper(window)).Handle, (TBPFLAG)state); }

效果演示

下面只需要在程序中使用以上方法便可實(shí)現(xiàn)對(duì)進(jìn)度條的控制,下面代碼通過(guò)Slider 調(diào)節(jié)進(jìn)度條當(dāng)前數(shù)值:

TaskbarManager.Instance.SetProgressValue((int)progressSlider.Value, 100); TaskbarManager.Instance.SetProgressState((TaskbarProgressBarState)progressBarStatus.SelectedItem);

通過(guò)調(diào)整進(jìn)度條呈現(xiàn)出三種不同的狀態(tài)效果:

正常狀態(tài)

錯(cuò)誤狀態(tài)

暫停狀態(tài)

閃動(dòng)效果

使用Live Messenger(LM)聊天時(shí),如果對(duì)方發(fā)出了信息LM 圖標(biāo)會(huì)閃動(dòng)提示,雖然Windows API 沒(méi)有直接控制閃動(dòng)效果的方法,但該效果在開(kāi)發(fā)中可能會(huì)經(jīng)常使用,下面代碼為一個(gè)閃動(dòng)效果類:

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); }

通過(guò)FlashWindowHelper 類可以輕松的使任務(wù)欄圖標(biāo)閃動(dòng)起來(lái):

private void flashTaskbar_Click(object sender, RoutedEventArgs e) { FlashWindowHelper helper = new FlashWindowHelper(); helper.Flash(8, 400, Application.Current.MainWindow); }

閃動(dòng)效果

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

標(biāo)簽: Windows系統(tǒng)
相關(guān)文章:
主站蜘蛛池模板: 国产亚洲网站 | 国产露脸国语对白在线 | 欧美日韩国产精品一区二区 | 精品国产精品三级精品av网址 | 亚洲不卡av在线 | 日韩欧美精品在线播放 | 精品精品视频 | 国产乱人伦精品一区二区 | 国产一区二区不卡 | 中文字幕av一区 | 久久精品 | 亚洲91 | 高清一区二区视频 | 亚洲一区二区三区在线免费 | 欧美 日韩 国产 一区 | 欧美一级淫片免费视频黄 | 黄色av网站免费看 | 免费在线黄 | 免费在线观看一区二区 | 成人国产免费观看 | 国产在线精品一区二区 | 欧美一区二区免费电影 | 黄色网址av | 国产丝袜一区二区三区免费视频 | 亚洲午夜一区二区 | 国产欧美在线 | 亚洲成人三级 | 成人免费大片黄在线播放 | 色接久久| 亚洲成人免费观看 | 国产一级精品毛片 | 91精品国产综合久久久久久丝袜 | av中文网 | 超碰97人人人人人蜜桃 | 亚洲第一av| 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 91久久久精品国产一区二区蜜臀 | 精品区 | 91亚洲国产精品 | 天天玩天天操天天干 | 欧美一区二区网站 |