Png图片的透明部分穿透测试
private void Window_MouseMove(object sender, MouseEventArgs e)
{
NavBtnList.Clear();
Point mouseP = e.GetPosition(this);
VisualTreeHelper.HitTest(this, new HitTestFilterCallback(HitFilter),
new HitTestResultCallback(HitResult), new PointHitTestParameters(mouseP)); if (NavBtnList.Count > )
{
for (int k = ; k < NavBtnList.Count; k++)
{
IconBtn element = NavBtnList[k] as IconBtn; DrawingVisual drawingVisual = new DrawingVisual();
using (DrawingContext context = drawingVisual.RenderOpen())
{
VisualBrush brush = new VisualBrush(element) { Stretch = Stretch.None };
context.DrawRectangle(brush, null,
new Rect(, , element.ActualWidth, element.ActualHeight));
context.Close();
} //dpi可以自己设定
// 获取dpi方法:PresentationSource.FromVisual(this).CompositionTarget.TransformToDevice
RenderTargetBitmap bitmap = new RenderTargetBitmap((int)element.ActualWidth,
(int)element.ActualHeight, , , PixelFormats.Pbgra32);
bitmap.Render(drawingVisual); Point p = this.TranslatePoint(mouseP, element); //全局坐标转为局部坐标point //获取鼠标下像素颜色值
var c = getImagePointColor((bitmap as BitmapSource), (int)p.X, (int)p.Y);
if (c != Convert16ToColor("#00000000"))
{
if (element.IsEnabled)
{
}
break; }
bitmap.Clear();
}
}
//鼠标按下获得所有IconBtnFrame 存储在NavBtnList里
List<IconBtn> NavBtnList = new List<IconBtn>(); public HitTestFilterBehavior HitFilter(DependencyObject dObject)
{
if (dObject is IconBtn)
{
NavBtnList.Add(dObject as IconBtn);
}
return HitTestFilterBehavior.Continue;
} public HitTestResultBehavior HitResult(HitTestResult result)
{
return HitTestResultBehavior.Continue;
}
Png图片的透明部分穿透测试的更多相关文章
- ie6下:png图片不透明 和 背景图片为png的节点的内部标签单击事件不响应
1.png图片不透明 少量图片时:使用滤镜: _background:none; _filter:prodig:DXImageTransform.Microsoft.AlphaImageLoader( ...
- Windows操作 - Photoshop为图片添加透明立体水印
原文地址:http://design.yesky.com/photoshop/252/2427752.shtml 本文我们介绍用Photoshop为图片添加透明立体水印的方法和技巧. 原图: 打开原图 ...
- 解决全站ie6下PNG图片不透明问题只要几行代码
解决全站ie6下PNG图片不透明问题只要复制下面这几行代码粘贴在你的文档最底部,需要用到的包DD_belatedPNG_0.0.8a.js自己网上下载吧 代码走起 /*在文档底部加入以下代码*/ &l ...
- CAGradientLayer实现图片渐变透明效果
CAGradientLayer实现图片渐变透明效果 要实现的效果如下: 源码: // // RootViewController.m // CAGradientLayer // // Copyrigh ...
- 关于ie6 下背景图片不透明以及Img不透明
ie6 下背景图片不透明的方法,加上下面的js即可解决 //解决IE6下图片不透明 function correctPNG() // correctly handle PNG transparency ...
- ps快速将白底图片变为透明图片
方法一: 如果图层有锁图标,则要点击它,然它消失.然后选中魔棒工具,然后点击图片上要透明的区域,按下backspace键即可. 方法二: 转载自:https://blog.csdn.net/sunyi ...
- 用shader使图片背景透明
转自:http://blog.csdn.net/dawn_moon/article/details/8631783 好吧,终于抽时间写这篇文章了. 手头上有很多人物行走图,技能特效图等,但这些图都有个 ...
- 【转】cocos2d-x游戏开发(十四)用shader使图片背景透明
转自:http://blog.csdn.net/dawn_moon/article/details/8631783 好吧,终于抽时间写这篇文章了. 手头上有很多人物行走图,技能特效图等,但这些图都有个 ...
- Android 设置按钮背景透明与半透明_图片背景透明
Button或者ImageButton的背景设为透明或者半透明 半透明<Button android:background="#e0000000" ... /> 透明 ...
随机推荐
- EasyUI设置复选框单选操作
Html 代码: <td align="left" colspan="2"> <input type=& ...
- Mindjet MindManager 2016/2017 折腾记录
https://community.mindjet.com/mindjet/topics/ensure-2017-64-bit-version-installation Mindmanager sho ...
- vs克隆新建团队项目
团队资源——克隆,完成后打开: 在解决方案资源中,添加——新建项目——web——ASP.NET web应用程序——空的,并将其设为启动项目:
- CF Soldier and Cards (模拟)
Soldier and Cards time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- CSS选择器笔记
一.元素选择符 序号 选择器 含义 1. * 通用元素选择器,匹配任何元素 2. E 标签选择器,匹配所有使用E标签的元素 3. .info class选择器,匹配所有class属性中包含info的元 ...
- C#垃圾回收机制
C#属于托管的面相对象的语言,内存回收机制就是一个代表, C#有一套类似"全自动"的垃圾回收机制,也就是虚拟机会自动来判断执行内存的回收, 我们一般常用的Dispose(),Usi ...
- MVC 页面跳转
想要学习MVC,那么页面跳转就是必不可少的,在此我总结了常见的页面跳转方式,给自己理一下做个备份,也顺便和大家分享一下. 常见页面跳转的:(下面的视图名和控制器中的方法名一样) 在控制器内部跳转: / ...
- Part 34 to 35 Talking about multiple class inheritance in C#
Part 34 Problems of multiple class inheritance Part 35 Multiple class inheritance using interfaces
- redistribute_prefix
使用分发列表和前缀列表控制路由 拓扑如下 将基本环境(ip和路由协议)配置好,所得到的各个路由表如下 R1: R2: R3: EIGRP和OSPF间的双向重分发 1. 在R2上做重分发 2. ...
- C++ 双链表基本操作
上一篇博客主要总结了单向链表,这次再总结一下双向链表. 1.概念 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都 ...