WPF图标特殊效果实现方法
创始人
2024-06-18 05:01:47
0

WPF开发工具的用途主要是体现在各种图形界面的显示方面。那么在使用的过程中,其中有很多技巧值得我们去深入研究。本篇将要实现图标的两个效果:1. 显示图标标签,2. 图标模糊效果。#t#

在上一篇中提到Image没有HTML < img>的Title属性(在MSDN中也没找到类似的属性),所以本篇将自行制作一个标签,它的功能是当鼠标移动到图标上方时会显示该图标的Tag说明,并且该WPF图标模糊显示。

1. 在Home < Image>中加入MouseEnter和MouseLeave事件。

 

  1. < Image Source="image/home.png" 
  2. Width="110" Height="110" 
  3. Tag="My Home"Canvas.Left="30"
    Canvas.Top="20" 
  4. Cursor="Hand"   
  5. MouseEnter="Image_BlurEffect_MouseEnter"   
  6. MouseLeave="Image_BlurEffect_MouseLeave"> 
  7. < /Image> 

 

2. 事件加好了,就要为添加内容了。先看Image_BlurEffect_MouseEnter事件:

 

  1. private void Image_BlurEffect_
    MouseEnter(object sender,
    MouseEventArgs e)   
  2. {   
  3. //将sender定义为Image对象   
  4. Image image = sender as Image;  
  5. //创建模糊BlurEffect对象   
  6. BlurEffect newBlurEffect = 
    new BlurEffect();  
  7. //设定模糊效果值Radius   
  8. newBlurEffect.Radius = 5;  
  9. //为Image添加Blur效果   
  10. image.Effect = newBlurEffect;  
  11. //将Image Tag内容传给imageTitle 
    Textblock   
  12. imageTitle.Text = " " + 
    image.Tag.ToString() +" ";  
  13. //将imageTitle的Border设置为可见   
  14. imageTitleBorder.Visibility = 
    Visibility.Visible;  
  15. //调整imageTitleBorder的Canvas位置,
    使其在图标下方显示   
  16. Canvas.SetLeft(imageTitleBorder, 
    Canvas.GetLeft(image)+ image.
    Width / 2 - 15);   
  17. Canvas.SetTop(imageTitleBorder, 125);   
  18. }  
  19. private void Image_BlurEffect_
    MouseLeave(object sender,
    MouseEventArgs e)   
  20. {   
  21. Image image = sender as Image;   
  22. BlurEffect newBlurEffect = 
    new BlurEffect();   
  23. newBlurEffect.Radius = 0;   
  24. image.Effect = newBlurEffect;   
  25. imageTitleBorder.Visibility = 
    Visibility.Collapsed;   

 

可以使用ToolTipService。经过测试使用ToolTip可以实现标签的功能(代码如下),而且也不用预设WPF图标显示效果,但是没法通过Canvas设定其位置,大家可以都学习一下。

 

  1. XAML:  
  2. < Image Source="image/home.png" 
    Width="110" Height="110"   
  3. Tag="My Home" Canvas.Left="30" 
    Canvas.Top="20"   
  4. MouseEnter="Image_BlurEffect_
    MouseEnter"   
  5. MouseLeave="Image_BlurEffect_
    MouseLeave"   
  6. Cursor="Hand">   
  7. < Image.ToolTip>   
  8. < TextBlock>My Home< /TextBlock>   
  9. < /Image.ToolTip>   
  10. < /Image> 

 

C#代码自然就简单多了:

 

  1. private void Image_BlurEffect_
    MouseEnter(object sender,
    MouseEventArgs e)   
  2. {   
  3. Image image = sender as Image;   
  4. BlurEffect newBlurEffect = 
    new BlurEffect();   
  5. newBlurEffect.Radius = 5;   
  6. image.Effect = newBlurEffect;   

上面这些方法介绍的就是WPF图标显示效果的实现。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...