zoukankan      html  css  js  c++  java
  • 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 > 0) { for (int k = 0; 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(0, 0, element.ActualWidth, element.ActualHeight)); context.Close(); } //dpi可以自己设定 // 获取dpi方法:PresentationSource.FromVisual(this).CompositionTarget.TransformToDevice RenderTargetBitmap bitmap = new RenderTargetBitmap((int)element.ActualWidth, (int)element.ActualHeight, 96, 96, 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(); }
    }
     1         //鼠标按下获得所有IconBtnFrame 存储在NavBtnList里
     2         List<IconBtn> NavBtnList = new List<IconBtn>();
     3 
     4         public HitTestFilterBehavior HitFilter(DependencyObject dObject)
     5         {
     6             if (dObject is IconBtn)
     7             {
     8                 NavBtnList.Add(dObject as IconBtn);
     9             }
    10             return HitTestFilterBehavior.Continue;
    11         }
    12 
    13         public HitTestResultBehavior HitResult(HitTestResult result)
    14         {
    15             return HitTestResultBehavior.Continue;
    16         }
  • 相关阅读:
    秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别(续)
    秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
    秒杀多线程第一篇 多线程笔试面试题汇总
    多线程---handlerthread
    AsyncTask使用须知
    Intent
    字典树 trie
    倒排索引
    百度大搜 算法的实习
    学习路径
  • 原文地址:https://www.cnblogs.com/leeice/p/3606260.html
Copyright © 2011-2022 走看看