博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 4 动态覆盖图标(Dynamic Overlay Icon)
阅读量:6963 次
发布时间:2019-06-27

本文共 1620 字,大约阅读时间需要 5 分钟。

在《》一文中我们学习了任务栏的相关开发内容,同时也对覆盖图标(Overlay Icon)功能进行了一些介绍,其中覆盖图标是以静态方式呈现的。本篇将进一步制作覆盖图标的动态实例。

新建应用程序

在项目中添加应用程序图标资源(App.ico),通过Window 属性为应用程序设置图标。

Icon

Property

ChooseIcon

在XAML 页面添加一个“Show Overlay Icon” <Button>控件用于触发后面显示动态覆盖图标的点击事件。

XAML

设置图标模板

     为了使用方便我们通过Window Resource 设置一个图标数据模板(DataTemplate)。由一个绿色圆圈(Ellipse)和一个文本框(TextBlock)组成,文本框用于动态显示倒计时数字。

添加任务栏组件

在XAML 中添加TaskbarItemInfo 组件,支持覆盖图标显示。

… …

添加点击事件

最后为按键添加点击事件,如下代码:

private void showBtn_Click(object sender, RoutedEventArgs e){    int iconWidth = 20;    int iconHeight = 20;    for (int i = 10; i > 0; i--)    {        RenderTargetBitmap bmp = new RenderTargetBitmap(iconWidth, iconHeight, 96, 96, PixelFormats.Default);        ContentControl ctl = new ContentControl();        ctl.ContentTemplate = ((DataTemplate)Resources["DynamicIcon"]);        ctl.Content = i.ToString();        ctl.Arrange(new Rect(0, 0, iconWidth, iconHeight));        bmp.Render(ctl);        TaskbarItemInfo.Overlay = (ImageSource)bmp;        Thread.Sleep(1000);    }}

     上面代码中,主要思路是通过循环将i值显示在覆盖图标中,以达到倒计时的效果。RenderTargetBitmap 允许我们通过XAML创建视图并将其渲染成Bitmap,当然这个Bitmap 图片就是要为TaskbarItemInfo 设置的Overlay 属性。

     接下来通过ContentControl 为DynamicIcon 模板设置覆盖图标资源,并将i值Binding 到TextBlock 控件。最后通过Render 方法将ContentControl 渲染为Bitmap,并赋给TaskbarItemInfo 的Overlay 属性。

运行程序点击“Show Overlay Icon”按键后,覆盖图标便以倒计时10秒方式动态显示。

10    8    1

源代码下载

本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2010/06/01/wpf4-dynamic-overlay-icon.html,如需转载请自行联系原作者
你可能感兴趣的文章
MySQL索引背后的数据结构及算法原理
查看>>
全面剖析 Knative Eventing 0.6 版本新特性
查看>>
流,用声明性的方式处理数据集 - 读《Java 8实战》
查看>>
【翻译】How To Become A Blockchain Developer: Crash Course! 区块链开发指南!
查看>>
linux修改或者配置IP地址、网络YUM源(针对Centos)
查看>>
MVC Cookie的使用
查看>>
mysql主从配置
查看>>
Linux 消耗CPU和内存的代码段----测试用的
查看>>
VMware与Hyper-V不兼容
查看>>
OSX加载驱动提示invalid signature
查看>>
第0篇.C++开发环境介绍
查看>>
Ubuntu 源代码阅读和函数、变量的定位--之一
查看>>
Java - Keywords 基本数据类型 Identifier
查看>>
我的友情链接
查看>>
Core Linux 操作文档(一)
查看>>
hadoop安装过程中ubuntu系统ssh免密码登陆设置 
查看>>
input按钮的background-image属性兼容性问题
查看>>
java.lang.*不用我们导入,编译器会自动给我们导入的,,,这个包是默认导入的。...
查看>>
shell 小脚本
查看>>
IE8、IE9下访问博客报不安全『博客帮助』文档
查看>>