电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

Windows 7 任務欄開發之縮略圖預覽(Thumbnail)

瀏覽:8日期:2023-05-31 15:12:22

上一篇我們對任務欄進度條的開發有了相應的了解,本篇將對縮略圖預覽功能進行研究。提起縮略圖預覽相信使用過Windows 7 的朋友一定不會陌生,它可以說是Windows 7 的一大亮點。不論運行的程序是否處于活動狀態,只要將鼠標放在任務欄圖標上便會出現當前程序的預覽效果。如下圖所示我們可以快速的在IE 縮略圖中找到想看的網頁。當然在Windows API 中也提供了許多開發縮略圖的工具,下面我們來看看如何使用它們。

TabbedThumbnail.TabbedThumbnail 方法

在默認情況下Windows 7 會顯示應用程序界面(如下圖),如果想替換或增加新的縮略圖,首先應通過TabbedThumbnail 類的TabbedThumbnail 方法創建一個新的縮略圖(Thumbnail)。

在TabbedThumbnail 類中,有三個TabbedThumbnail 方法可以創建縮略圖:

//設定父窗口和子窗口/控件 public TabbedThumbnail(IntPtr parentWindowHandle, IntPtr windowHandle) { if (parentWindowHandle == IntPtr.Zero) throw new ArgumentException('Parent window handle cannot be zero.', 'parentWindowHandle'); if (windowHandle == IntPtr.Zero) throw new ArgumentException('Child control's window handle cannot be zero.', 'windowHandle'); WindowHandle = windowHandle; ParentWindowHandle = parentWindowHandle; }  //設定父窗口和子控件 public TabbedThumbnail(IntPtr parentWindowHandle, Control control) { if (parentWindowHandle == IntPtr.Zero) throw new ArgumentException('Parent window handle cannot be zero.', 'parentWindowHandle'); if (control == null) throw new ArgumentNullException('control'); WindowHandle = control.Handle; ParentWindowHandle = parentWindowHandle; }  //設定父窗口或WPF子控件,以及兩者的偏移量 public TabbedThumbnail(Window parentWindow, UIElement windowsControl, Vector peekOffset) { if (windowsControl == null) throw new ArgumentNullException('control'); if (parentWindow == null) throw new ArgumentNullException('parentWindow'); WindowHandle = IntPtr.Zero; WindowsControl = windowsControl; WindowsControlParentWindow = parentWindow; ParentWindowHandle = (new WindowInteropHelper(parentWindow)).Handle; PeekOffset = peekOffset; }

TabbedThumbnail.AddThumbnailPrevIEw 方法

通過AddThumbnailPreview 方法將TabbedThumbnail 添加到任務欄縮略圖中:

public void AddThumbnailPreview(TabbedThumbnail preview){… …}

TabbedThumbnailManager.SetActiveTab 方法

通過SetActiveTab 方法將指定的縮略圖、窗口句柄、Form控件、WPF控件設置為活動狀態。例如,在IE 中我們打開了多個網頁標簽,那么SetActiveTab 可以將其中一個標簽設為當前瀏覽頁。

public void SetActiveTab(TabbedThumbnail preview){… …} public void SetActiveTab(IntPtr windowHandle){… …} public void SetActiveTab(Control control){… …} public void SetActiveTab(UIElement WindowsControl){… …}

TabbedThumbnailManager.GetThumbnailPreview 方法

通過GetThumbnailPreview 方法獲取指定的窗口句柄、Form控件、WPF控件的縮略圖(TabbedThumbnail):

public TabbedThumbnail GetThumbnailPreview(IntPtr windowHandle){… …} public TabbedThumbnail GetThumbnailPreview(Control control){… …} public TabbedThumbnail GetThumbnailPreview(UIElement windowsControl){… …}

TabbedThumbnailManager.RemoveThumbnailPreview 方法

通過RemoveThumbnailPreview 方法將指定的縮略圖、窗口句柄、Form控件、WPF控件從任務欄縮略圖中刪除:

public void RemoveThumbnailPreview(TabbedThumbnail preview){… …} public void RemoveThumbnailPreview(IntPtr windowHandle){… …} public void RemoveThumbnailPreview(Control control){… …} public void RemoveThumbnailPreview(UIElement windowsControl){… …}

TabbedThumbnailManager.IsThumbnailPrevIEwAdded 方法

通過IsThumbnailPreviewAdded 方法判斷的縮略圖、窗口句柄、Form控件、WPF控件是否已添加,并返回Bool 值:

public bool IsThumbnailPreviewAdded(TabbedThumbnail preview){… …} public bool IsThumbnailPreviewAdded(IntPtr windowHandle){… …} public bool IsThumbnailPreviewAdded(Control control){… …} public bool IsThumbnailPreviewAdded(UIElement control){… …}

TabbedThumbnailManager.SetTabOrder 方法

通過SetTabOrder 方法調換兩個TabbedThumbnail 前后位置,注意第一個TabbedThumbnail 將調換到第二個TabbedThumbnail 的前面。

public void SetTabOrder(TabbedThumbnail previewToChange, TabbedThumbnail insertBeforePreview){… …}

效果演示

通過以上方法就能夠隨心所欲的設定縮略圖了,下面就將上面示意圖中的縮略圖改為Windows Logo 圖標,其中ui 即為XAML 代碼中控件的名稱(x:Name):

TabbedThumbnail newPreview = new TabbedThumbnail(Application.Current.MainWindow, ui, peekOffect); TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(newPreview); TaskbarManager.Instance.TabbedThumbnail.SetActiveTab(newPreview);

點擊“Set this image as thumbnail 前后對比,縮略圖變為了<Image> 控件:

修改前 

修改后

點擊“Add another thumbnail 后,可將<Button> 控件加入縮略圖中:

點擊 “Change thumbnail order 調換縮略圖前后位置:

另外,還可以通過TabbedThumbnail.Tooltip 屬性為縮略圖添加提示信息。當鼠標置于縮略圖上方時,將會有相應的ToolTip 顯示:

newPrevIEw.Tooltip = 'Welcome to Windows 7';

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

標簽: Windows系統
相關文章:
主站蜘蛛池模板: 物流公司电话|附近物流公司电话上门取货 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 铣床|万能铣床|立式铣床|数控铣床|山东滕州万友机床有限公司 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | bng防爆挠性连接管-定做金属防爆挠性管-依客思防爆科技 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 阜阳成人高考_阜阳成考报名时间_安徽省成人高考网 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | 保温杯,儿童婴童奶瓶,运动水壶「广告礼品杯定制厂家」超朗保温杯壶 | 神马影院-实时更新秒播| 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | TPU薄膜_TPU薄膜生产厂家_TPU热熔胶膜厂家定制_鑫亘环保科技(深圳)有限公司 | 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 软文推广发布平台_新闻稿件自助发布_媒体邀约-澜媒宝 | 电子天平-华志电子天平厂家| 诚暄电子公司首页-线路板打样,pcb线路板打样加工制作厂家 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 地图标注|微信高德百度地图标注|地图标记-做地图[ZuoMap.com] | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | POS机办理_个人pos机免费领取-银联pos机申请首页 | 楼梯定制_楼梯设计施工厂家_楼梯扶手安装制作-北京凌步楼梯 | 河南15年专业网站建设制作设计,做网站就找郑州启凡网络公司 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 棕刚玉-白刚玉厂家价格_巩义市东翔净水材料厂 | 铝合金脚手架厂家-专注高空作业平台-深圳腾达安全科技 | 云南成人高考_云南成考网|