博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF命中测试示例(二)——几何区域命中测试
阅读量:6423 次
发布时间:2019-06-23

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

接续上次的命中测试,这次来做几何区域测试示例。

 

示例

首先新建一个WPF项目,在主界面中拖入一个按钮控件,并修改代码中的以下高亮位置:

image

当前设计视图界面如下:

image

接下来,转到窗体的“Window_Loaded”事件处理函数,编写函数代码:

private void Window_Loaded(object sender, RoutedEventArgs e){Random r = new Random();for (int i = 0; i < 800; i++){var o = new Ellipse();o.HorizontalAlignment = HorizontalAlignment.Left;o.VerticalAlignment = VerticalAlignment.Top;o.Margin=new Thickness(){ Left = r.Next((int)this.Width),Top = r.Next((int)this.Height)};o.Height = o.Width = r.Next(10);o.Fill = new SolidColorBrush(new Color() { A = (byte)r.Next(255), R = (byte)r.Next(255), G = (byte)r.Next(255), B = (byte)r.Next(255) });root.Children.Add(o);}}

代码的功能是在界面中随机分布800个不同色彩的小圆点,我们来编译运行看看效果:

SNAGHTML11caca8c

现在,我们需要在按钮点击时,将中间200×150椭圆区域内的小圆点变成黑色。

编写按钮点击事件处理函数如下:

private void button1_Click(object sender, RoutedEventArgs e){VisualTreeHelper.HitTest(root, null, f =>{var o = f.VisualHit as Ellipse;if (o != null) o.Fill = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));return HitTestResultBehavior.Continue;}, new GeometryHitTestParameters(new EllipseGeometry(new Point(this.Width / 2, this.Height / 2), 200, 150)));}

这里的HitTestParameters就采用了GeometryHitTestParameters,传入一个几何图形作为命中测试区域。

编译运行效果:

image 

 

下载

源代码:

本文的XPS版本:

本文转自斯克迪亚博客园博客,原文链接:http://www.cnblogs.com/SkyD/archive/2010/05/17/1737106.html,如需转载请自行联系原作者

你可能感兴趣的文章
mac 删除文件夹里所有的.svn文件
查看>>
程序制作 代写程序 软件定制 代写Assignment 网络IT支持服务
查看>>
mysql 案例~select引起的性能问题
查看>>
直接读取图层
查看>>
springsecurity 源码解读 之 RememberMeAuthenticationFilter
查看>>
HTML5标准学习 - 编码
查看>>
JS 时间戳转星期几 AND js时间戳判断时间几天前
查看>>
UVa11426 最大公约数之和(正版)
查看>>
mime
查看>>
SQL练习之求解填字游戏
查看>>
DOM
查看>>
关于网上商城开发的随笔记录1
查看>>
UIApplication
查看>>
12:Web及MySQL服务异常监测案例
查看>>
hdu 3955 March
查看>>
数据库性能优化之冗余字段的作用
查看>>
C语言程序设计第五次作业
查看>>
Go语言的接口
查看>>
DBA_实践指南系列9_Oracle Erp R12应用补丁AutoPatch/AutoControl/AutoConfig(案例)
查看>>
Python语言学习 (六)1.2
查看>>