当前位置:网站首页>WPF效果第一百九十一篇之框选ListBox

WPF效果第一百九十一篇之框选ListBox

2022-07-06 03:39:00 dotNET跨平台

前面效果中基于ListBox实现了一点不一样的效果;今天再次在原来的基础上完善框选ListBox;最终实现的效果,如下图:

1、使用了VisualTreeHelper的HitTest方法:

Point point2 = e.GetPosition(LedListBox);
 Rect rect = new Rect(origContentMouseDownPoint, point2);
 RectangleGeometry rectangleGeometry = new RectangleGeometry(rect);
 VisualTreeHelper.HitTest(LedListBox, new HitTestFilterCallback(OnHitTestFilterCallback), new HitTestResultCallback(OnHitTestResultCallback), new GeometryHitTestParameters(rectangleGeometry));

2、关于OnHitTestFilterCallback:

private HitTestFilterBehavior OnHitTestFilterCallback(DependencyObject target)
 {
     UIElement element = target as UIElement;
     if(element != null)
     {
         var img = element as CheckBox;
         if(img != null && img.IsVisible == true)
         {
             img.IsChecked = true;
             return HitTestFilterBehavior.Continue;
         }
     }
     return HitTestFilterBehavior.Continue;
 }

最终简单的效果先这样吧d6e0067e28f867b741d0a8f6fa33c1d1.png;以后有时间的话,可以再去摸索一下更复杂的效果cd9c8961ada1145382c10a432a40e842.png;编程不息、Bug不止、无Bug、无生活e56f884ae0320da33eb18cb937f1a7a9.png;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!

原网站

版权声明
本文为[dotNET跨平台]所创,转载请带上原文链接,感谢
https://blog.csdn.net/sD7O95O/article/details/125630934