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. POJ 2993 Emag eht htiw Em Pleh【模拟画棋盘】

    链接: http://poj.org/problem?id=2993 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27454#probl ...

  2. 九度OJ 1283:第一个只出现一次的字符 (计数)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1808 解决:997 题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符 ...

  3. mysql数据库访问授权

    1.进入MySQL服务器 d:\mysql\bin\> mysql -h localhost -u root; 2.赋予任何主机访问数据的权限 mysql> GRANT ALL PRIVI ...

  4. JS分段传输数据

    <SCRIPT language=javascript> file://数据拆分,并放到相应的hidden域中,在Form的onSubmit事件中激发 function fnPreHand ...

  5. Jquery定义对象( 闭包)

    转自:http://www.cnblogs.com/springsnow/archive/2010/06/03/1750832.html 例一:添加对象的静态属性 声明一个对象$.problemWo, ...

  6. python3函数内全局变量使用global

    def p_num(): global num num = 10 print (num) num = 5 p_num() print(num)

  7. Django——auth用户认证

    之前我们在进行用户校验的时候,总是从数据库中获取数据,然后再进行对比,就像如下这样: def login(request): if request.method == "POST" ...

  8. 用cocos2d-html5做的消除类游戏《英雄爱消除》(1)——系统主菜单

    系统主菜单如下图所示: 首先,介绍下这个主菜单,它包含了一个动画logo以及一个按钮选项,动画logo每隔1秒钟切换一张图片,点击相应的按钮选项会切换不同的游戏场景. 下面看下这个界面的源码: /** ...

  9. 高性能javascript学习总结(2)--DOM编程

    我们知道,对DOM的操作都是非常的耗性能的,那么为什么会耗性能呢?      文档对象模型(DOM)是一个独立于语言的,使用 XML和 HTML 文档操作的应用程序接口(API).在浏览器中,主要与 ...

  10. Eclipse输入命令行参数

    想要在Eclipse中输入命令行参数,可以在目录中该程序上右键,选择“Run As",选择”Run configurations",如图: 然后输入命令行参数: 点击Apply和R ...