Net UI Spy工具:ManagedSpy
Net UI Spy工具:ManagedSpy
很久之前在接手一个大型的Winform项目的时候。有如下困难:
1,项目很大整个产品的Build由1400多个Project组成
2,产品的组件、控件太多太多
3,代码已经是N代传到N代了
基于以上的现状,项目组中的人员,没有谁对于整体能大概的把握。那么在维护和修改的时候,如何能根据UI的操作,快速定位到某个控件、组件的代码位置,就十分必要了。
当时首先想到的就是找一个UI Spy工具,来辅助这个需求。经过一番实践,发现:ManagedSpy最为好用。当然了,有时候也会配合另一个类似工具:Object Spy一起使用。
关于ManagedSpy,你能从:http://msdn.microsoft.com/en-us/magazine/cc163617.aspx获得更加详细的说明和工具源码。
关于Object Spy,你能从:http://www.codeproject.com/KB/dotnet/objectspy.aspx获得详细的说明和工具源码。

下面以上图为例子,简单说明ManagedSpy的使用。
可以看到ManagedSpy的左边可以显示当前本机上所运行的App,并且每个App均以控件树的形式展现。在控件树的[]之内可以很方便查看到NameSpace信息。通过这它,就可以找代码的位置了。需要特别说明的是:对于结构比较负责的UI来说,常常,要找你所关注那一个Control并不是那么容易,这个时候,你可以点击控件树的节点的右键,选择:“Show Window”,此时注意观察当前运行App的UI,你会发现,这个Control的区域会出现一个青蓝色框,这样就可以让你很清楚,你所查看的Control,对应UI的是哪块,这样,最后这样通过大到小的顺序就可以准确找到你的目标Control了。
ManagedSpy的右边视图是,左边选中控件树节点的详细信息。另外,需要说明的是,这些详细信息的各个属性,有些是可以修改的。而且对于修改之后的效果会体现现在当前的App之上,比如,选择某个Label,修改其Text属性,那么效果就会立刻在当前运行的App上体现。
Net UI Spy工具:ManagedSpy的更多相关文章
- Reveal UI 分析工具简单使用
官网下载地址(30天免费试用):http://revealapp.com/ 作用: 在 iOS 开发中,我们有时很希望有一款类似 Web 开发中的 UI Debug 工具(例如:Firebug),让我 ...
- Reveal UI 分析工具分析手机 App
上篇文章介绍了: Reveal UI 分析工具简单使用 这里介绍如何使用 Reveal UI 分析工具来进行手机 App UI 界面的分析. 前提准备: (1)已安装 Reveal 的 Mac (2) ...
- 国外一些好用的UX/UI设计工具和资源分享
国外一些好用的UX/UI设计工具和资源分享 你今天使用的设计工具也许不再适合以后的网页和APP设计项目了.新的工具不断的推出市场,目标只有一个,让你的工作更快.更容易而且工作成效更好.今天分享的这些U ...
- 移动周报:十款最实用的Android UI设计工具
上一周可以说是一个不断Mark周,从最实用的Android UI设计工具.免费移动应用测试框架推荐,到HTML5开发框架等等,各种开发工具.框架精彩丰呈,看得小伙伴们是不亦乐乎.当然,还有不容错过的M ...
- Pencil-一个开源免费的UI原型工具,自带ios和android模板
Pencil是一个开源免费的UI原型工具,自带ios和android模板,可以很方便的做mockup. 下图是一个官方展示的模板:
- 好用的UI设计工具
51yuansu 好用的在线画UI图工具 51yuansu.com processon.com processon在线画图工具,程序流程图及UI设计原型图,脑图等 draw.io的PC版画图工 ...
- 宇宙最强VisualStudio2017配置pyQt5用于python3.6的UI界面工具(转)
宇宙最强VisualStudio2017配置pyQt5用于python3.6的UI界面工具 转载: https://blog.csdn.net/m0_37606112/article/details/ ...
- 如何用SPY++工具查看窗体的句柄
我安装的是vs2012,先找到SPY++工具打开 打开方式: 方式1:通过路径(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microso ...
- Selenide 阶段性总结介绍(UI自动化测试工具)
今天给大家介绍一个比较新的UI自动化测试工具-- Selenide.确实是比较新的,国内应该还没有多少人用它.在百度和google上你只能搜到一个中文帖子简单介绍了一下.如果你想用这个工具,不可避免的 ...
随机推荐
- C# 清除sqlite密码
C# 清除sqlite密码 .创建空的sqlite数据库. //数据库名的后缀你可以直接指定,甚至没有后缀都可以 //方法一:创建一个空sqlite数据库,用IO的方式 FileStream fs = ...
- C语言strncasecmp()函数:比较字符串的前n个字符
定义 int strncasecmp(const char *s1, const char *s2, size_t n); 描述 strncasecmp()用来比较参数s1 和s2 字符串前n个字符, ...
- css自定义属性和简单效果
简介 CSS Variables,一个并不是那么新的东西,但对css来说绝对是一场革命. 之前使用变量的时候,需要借助sass.less等预处理工具来实现,现在我们可以直接使用css来声明变量. 兼容 ...
- JS中的constructor 和 prototype
object.constructor :对象的constructor 属性引用了该对象的构造函数. //例如,用Array()构造函数创建了一个数组,那么a.constructor 引用的就是Arra ...
- SyntaxError: Non-ASCII character 'æ' in file csdn.py on line 7, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
错误信息: SyntaxError: Non-ASCII character , but no encoding declared; see http://python.org/dev/peps/pe ...
- scala_基础
笔记前言:本笔记为scala的入门基础和scala基础使用.主要参考为书籍和推荐较高的博客.主要目的为供个人总结学习. 所有来自网络参考内容不一一列出. 一.面向过程 1.变量体 val 标识符:声 ...
- zabbix基于docker安装
centos的版本 # cat /etc/redhat-release CentOS Linux release (Core) docker的安装 配置yum源 # vim /etc/yum.repo ...
- 深度学习面试题25:分离卷积(separable卷积)
目录 举例 单个张量与多个卷积核的分离卷积 参考资料 举例 分离卷积就是先在深度上分别卷积,然后再进行卷积,对应代码为: import tensorflow as tf # [batch, in_he ...
- (二)SpringMVC+mybatis实践
一.需求 以案例作为驱动 springmvc和mybatis使用一个案例(商品订单管理系统) 功能需求:商品的列表查询 二.环境准备 数据库环境 Java环境 jdk1.8 eclipse sprin ...
- ZingChart line 折线图表数据设置
根据 x 坐标和 y 坐标一一对应进行设置 (x,y) { "type": "line", "series":[ {,],[,],[,],[ ...