返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >WPF使用VisualTreeHelper进行命中测试
  • 476
分享到

WPF使用VisualTreeHelper进行命中测试

2024-04-02 19:04:59 476人浏览 安东尼
摘要

一、简介 我们有时候又需求从当前视觉树中找一些东西,比如鼠标按下的时候,看看鼠标下的元素都有什么。又比如某块区域下有哪些元素?某个坐标点下有哪些元素?这些需求在使用 命中测试的时候,

一、简介

我们有时候又需求从当前视觉树中找一些东西,比如鼠标按下的时候,看看鼠标下的元素都有什么。又比如某块区域下有哪些元素?某个坐标点下有哪些元素?这些需求在使用 命中测试的时候,可以非常方便和快速的去找到我们需要的内容。

二、代码案例

我在一个画板上在不同的位置放了3个圆形。给他们放置了不同的位置和填充不同的颜色,我们通过命中测试判断如果鼠标在圆上抬起了,我们读取当前圆的填充颜色。 

XAML:

    <Grid MouseLeftButtonUp="Grid_MouseLeftButtonUp">
        <canvas>
            <!--三个圆形-->
            <Ellipse  Canvas.Left="30" Canvas.Top="200"  Width="130" Height="130" Fill="Blue"/>
            <Ellipse  Canvas.Left="110" Canvas.Top="0"  Width="130" Height="130" Fill="Red"/>
            <Ellipse   Canvas.Left="220" Canvas.Top="100"  Width="130" Height="130" Fill="Yellow"/>
            <TextBlock  Canvas.Left="0" Canvas.Top="0" Text="抬起鼠标左键,开始对鼠标所在点进行命中测试" />
        </Canvas>
    </Grid>

后台逻辑:

        private void Grid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            var ellipse = GetVisual(e.GetPosition(this));
            MessageBox.Show(ellipse?.Fill?.ToString());
        }

        private Ellipse GetVisual(Point point)
        {
            HitTestResult hitResult = VisualTreeHelper.HitTest(this, point);
            var ellipse = hitResult.VisualHit as Ellipse;
            return ellipse;
        }

三、运行效果

到此这篇关于WPF使用VisualTreeHelper进行命中测试的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: WPF使用VisualTreeHelper进行命中测试

本文链接: https://lsjlt.com/news/146814.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • WPF使用VisualTreeHelper进行命中测试
    一、简介 我们有时候又需求从当前视觉树中找一些东西,比如鼠标按下的时候,看看鼠标下的元素都有什么。又比如某块区域下有哪些元素?某个坐标点下有哪些元素?这些需求在使用 命中测试的时候,...
    99+
    2024-04-02
  • Android中使用Junit进行单元测试
      不管我们在学习还是在开发的时候,都会用到测试,在Android中进行的Junit单元工具测试需要创建一个类去继承于AndroidTestCase类,同时还需要在主配置文...
    99+
    2022-06-06
    单元 junit 单元测试 测试 Android
  • Android中使用JUnit进行自动测试
    假设你正在编写Android服务代码,而且,又要时不时的重构代码,那么,有效的方式是添加自动测试用例。在写过一个简单的sample以后,发现确实很容易,下面我google的...
    99+
    2022-06-06
    自动测试 自动 junit 测试 Android
  • 使用sysbench对MySQL进行测试
    因sysbench版本更新问题,某些命令选项发生改变,查询help进行酌情更改。 https://yq.aliyun.com/articles/66651spm=5176.100239.blogcont6...
    99+
    2024-04-02
  • 使用 gorm 和 sqlmock 进行测试
    问题内容 我正在努力使用 sqlmock 和 gorm 为我的 go lambda 函数编写测试。 这是我要测试的功能: func docleanup(con *gorm.db) { ...
    99+
    2024-02-05
  • Linux中如何进行命令运行时间测试
    这篇文章主要为大家展示了“Linux中如何进行命令运行时间测试”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中如何进行命令运行时间测试”这篇文章吧。1. time 命令基本用法time...
    99+
    2023-06-05
  • 使用traceview进行Android性能测试
      一、 TraceView工具简述   Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形界面的方式让我们了解我们要跟踪的程序的性能,并...
    99+
    2022-06-06
    测试 Android
  • Java使用jmeter进行压力测试
    本篇文章简单讲一下使用jmeter进行压力测试。其压测思想就是 通过创建指定数量的线程,同时请求指定接口,来模拟指定数量用户同时进行某个操作的场景。 jmeter测试计划配置: 运行...
    99+
    2024-04-02
  • 如何使用Spring AOP进行测试
    本篇内容主要讲解“如何使用Spring AOP进行测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Spring AOP进行测试”吧!AOP解析今天来介...
    99+
    2024-04-02
  • C#使用MSTest进行单元测试
    我之前写过一篇XUNit的简介:使用Xunit来进行单元测试。Xunit在当时确实是一个最简单易用的测试框架,然而,随着发展,Xunit也变得复杂了不少,光写一个最简单的测试就要导入...
    99+
    2024-04-02
  • Android中如何使用JUnit进行单元测试
      在我们日常开发android app的时候,需要不断地进行测试,所以使用JUnit测试框架显得格外重要,学会JUnit可以加快应用的开发周期。   Android中建...
    99+
    2022-06-06
    单元 junit 单元测试 测试 Android
  • MySQL中怎么使用hammerdb进行基准测试
    今天就跟大家聊聊有关MySQL中怎么使用hammerdb进行基准测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。root@master /usr/...
    99+
    2024-04-02
  • C++中怎么使用CppUnit进行单元测试
    这篇文章主要讲解了“C++中怎么使用CppUnit进行单元测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中怎么使用CppUnit进行单元测试”吧!如果使用VC6,那么直接用VC6打...
    99+
    2023-06-17
  • Ubuntu中怎么使用ApacheBench进行压力测试
    本文小编为大家详细介绍“Ubuntu中怎么使用ApacheBench进行压力测试”,内容详细,步骤清晰,细节处理妥当,希望这篇“Ubuntu中怎么使用ApacheBench进行压力测试”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-27
  • C#中如何使用单元测试框架进行自动化测试
    C#中如何使用单元测试框架进行自动化测试引言:在软件开发过程中,自动化测试是一个非常重要的环节。通过编写和运行测试代码,可以帮助我们验证和确保代码的正确性和稳定性。在C#开发中,我们可以使用单元测试框架来实现自动化测试。本文将介绍C#中常用...
    99+
    2023-10-22
    自动化测试 C# 单元测试
  • 使用Apache ab进行http性能测试
    Mac自带了Apache环境 打开“终端(terminal)”,输入 sudo apachectl -v,(可能需要输入机器秘密)。如下显示Apache的版本 接着输入 sudo apachectl start,这样A...
    99+
    2022-06-04
    Apache ab http 性能测试
  • 使用Django进行测试驱动开发
    目录创建项目配置 app编写测试用例编写代码执行测试最后的话所谓测试驱动开发(TDD),就是先编写测试用例,然后编写代码来满足测试用例,具体包含以下步骤: 编写测试用例。 ...
    99+
    2024-04-02
  • Java使用JMeter进行高并发测试
    目录常见的压力测试工具:使用JMeter进行高并发测试1.下载并安装JMeter2.使用JMeter进行测试3.生成测试报告4.分析测试报告软件的压力测试是一种保证软件质量的行为.在...
    99+
    2024-04-02
  • 如何使用Gateling进行性能测试
    这篇文章主要讲解了“如何使用Gateling进行性能测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Gateling进行性能测试”吧!Gatling是什么?Gatling 是一个用...
    99+
    2023-06-02
  • 如何使用 PHP 进行单元测试?
    单元测试检查软件的最小构成部分(如函数、方法),php 可通过 phpunit 框架进行单元测试。首先安装 phpunit,然后创建测试类(扩展自 testcase),再编写以 "tes...
    99+
    2024-04-19
    php 单元测试 composer
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作