snoop是开发wpf应用程序的利器。用它可以观察WPF的可视树,监听事件,更改元素属性等。

下面我介绍下snoop一些用法。
1.获取指定应用程序的UI
  打开snoop,选择“Drag and Drop this crosshairs over wpf window inorder to snoop it” 按钮, 拖动它到你要观察的wpf窗体上。
  你会发现 十字准线 会标出窗体的名字及进程号。
2.选择窗体后,snoop会创建一个包含此窗体可视树的一个界面。
  此UI左边是窗体的可视树,右边是每个可视元素的属性,DataContext(数据上下午), 发生的Events,以及保护的公共方法。
3.在Snoop创建出来的可视树找到自己想要观察的元素, 有2种办法:
(1)根据元素层次关系, 层层展开,找到对应元素。
(2)在被观察的窗体上, 按住快捷键shift+ctrl, 然后用鼠标左键直接选择对应元素。
4.Properties选项卡的用法
  此页显示了左边选中的可视元素的属性。 通过Properties可以看到运行时的属性值( 比如Width,Height,以及此属性值如果Binding则其BindingPath)
  大部分控件的属性是可更改的, 则我们可以在Properties中更改某些属性值, 来实时看到被观察窗体上的UI变化。 (比如,我们更改元素的Visibility,可以        实时看到元素的隐藏或显示;更改高宽来实时查看变化等等) 这样对于调试很方便,当我们通过snoop确定效果时,再在代码中更改。
5.Data Context选项卡的用法
 
 此页显示了左边选中的可视元素的DataContext(数据上下文) , 通过此功能看到运行时我们Binding的值是否正确。
6.Events选项卡的用法
 此页显示了被观察窗体所发生的路由事件。通过此功能我们可以查看用户操作时的Routed Event是否按照我们想象的方式正确运行。
 点击Common Events下拉框, 可以选择想要监视的event类型。
7.Methods选项卡的用法
 
 此页可以动态调用左边被选中元素所公开的函数方法, 或者元素的DataContext所公开的方法。 通过此方法我们可以调试一些方法调用后对于UI的影响。
8.右下角Preview区域的用法
 snoop右下角可以对被观察窗体进行放大, 实时预览,以及截图保存。尤其是Preview功能,对应实时调试样式效果很有用。打开实时预览功能后, 我们可以在预览区域进行拖动,放大缩小等操作,能尽可能最大化的看到效果。
9.状态栏
 snoop的状态栏显示了当前focus的元素, 对于我们调试wpf的焦点问题也很有用法,配合Events监视情况会更好。
 

关于Snoop的用法的更多相关文章

  1. snoop的基本用法

    关于Snoop的用法   snoop是开发wpf应用程序的利器.用它可以观察WPF的可视树,监听事件,更改元素属性等.   下面我介绍下snoop一些用法.   1.获取指定应用程序的UI     打 ...

  2. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  3. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  4. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  5. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  6. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  7. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  8. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  9. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

随机推荐

  1. 九度OJ 1000:计算a+b

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:35767 解决:15660 题目描述: 求整数a,b的和. 输入: 测试案例有多行,每行为a,b的值. 输出: 输出多行,对应a+b的结果. ...

  2. 函数的光滑化或正则化 卷积 应用 两个统计独立变量X与Y的和的概率密度函数是X与Y的概率密度函数的卷积

    http://graphics.stanford.edu/courses/cs178/applets/convolution.html Convolution is an operation on t ...

  3. iOS 开发与H5交互(JavaScriptCore框架的使用)

    现在的iOS项目中嵌入了越来越多的Web界面,当然是为了方便,那么为了迎合这一趋势,作为iOS开发程序员,我们必须要了解怎么样用OC去和这些Web界面进行交互.这里介绍的是JavaScriptCore ...

  4. FPGA低温不能启动分析

    FPGA低温不能启动分析 现象描写叙述:在给medium板光端机做低温试验时,分别给发送版.接收板断电又一次启动,发现有的板子在-40°能够启动,而有些板子在-20°都不能启动.须要升高温度到0°以上 ...

  5. Unicode Category

    Lu(letter,uppercase):大写字母. Ll(letter.lowercase):小写字母. Lt(letter,titlecase):词首字母大写的字母. Lm(letter,modi ...

  6. IaaS,PaaS,Saas 云服务的介绍

    云服务只是一个统称,可以分成三大类. IaaS:基础设施服务,Infrastructure-as-a-service PaaS:平台服务,Platform-as-a-service SaaS:软件服务 ...

  7. HTTP1.1与HTTP1.0

    本文转载自: http://www.cnblogs.com/shijingxiang/articles/4434643.html 1.可扩展性 a.在消息中增添版本号,用于兼容判断,版本号只能判断逐段 ...

  8. Luogu-4166 [SCOI2007]最大土地面积

    求平面内四边形的最大面积 显然四个端点都应该在凸包上,就先求凸包,然后\(n^2\)枚举四边形对角线,对于一个点\(i\),顺序枚举\(j\),同时用旋转卡壳的方法去找离对角线最远的两个点.总时间复杂 ...

  9. 也来谈幂等和CAS

    什么是幂等? 一个方法,不管你执行多少次,保证执行的结果总是相同的.这种方法或者服务就是幂等的. 什么是CAS? CAS是Compare And Set的缩写,顾名思义,就是先比较再设置,这种方式避免 ...

  10. Javascript 模块化编程 --RequireJs

    什么是模块化 模块就是实现特定功能的一组方法,常见的几种js写法 原始写法 function A() { } function B() { } 上面函数A()和B()组成一个模块,使用的时候直接调用就 ...