关于Snoop的用法

 
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是开发wpf应用程序的利器.用它可以观察WPF的可视树,监听事件,更改元素属性等. 下面我介绍下snoop一些用法. 1.获取指定应用程序的UI   打开snoop,选择"Drag ...

  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. Beautifulsoup网页解析——爬取豆瓣排行榜分类接口

    我们在网页爬取的过程中,会通过requests成功的获取到所需要的信息,而且,在返回的网页信息中,也是通过HTML代码的形式进行展示的.HTML代码都是通过固定的标签组合来实现页面信息的展示,所以,最 ...

  2. 在R中使用Keras和TensorFlow构建深度学习模型

    一.以TensorFlow为后端的Keras框架安装 #首先在ubuntu16.04中运行以下代码 sudo apt-get install libcurl4-openssl-dev libssl-d ...

  3. 通过http将yum仓库发布

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独构建http和发布yum仓库到内网的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要 ...

  4. 微信小程序 -- 英语词典 (小程序插件)

    英语词典小程序 基于英语词典小程序插件 - 提供开源地址 项目地址 英语词典小程序插件: 微信小程序 词典 真题基础服务插件(gitee.com) 功能特色 [x] 全面详实的经典词库,详细释义覆盖约 ...

  5. 那些 Unix 命令替代品们「GitHub 热点速览 v.21.32」

    作者:HelloGitHub-小鱼干 好用的 Unix 命令替代工具能让你事半功倍,例如,bat 便是个带着高亮特性的加强版 cat,就像你用了 oh my zsh 之后便会感受到它的强大.同样好用的 ...

  6. 洛谷P5691题解

    题面 本人用的是暴力分类讨论 + \(unordered\_map\) 存储,与所有的题解都不同. 因为 \(n \leq 6\) ,非常的小,并且我不想写 DFS,所以直接暴力分类讨论 \(n=1, ...

  7. 表单验证插件jquery-validation以及案例

    表单验证插件jquery-validation以及案例 1,获取并引入: (1)获取:官网:https://jqueryvalidation.org/ [home]->[files]->[ ...

  8. 四、C#简单操作MinIO

    MinIO的官方网站非常详细,以下只是本人学习过程的整理 一.MinIO的基本概念 二.Windows安装与简单使用MinIO 三.Linux部署MinIO分布式集群 四.C#简单操作MinIO He ...

  9. java常见面试题总结2

    JAVA必背面试题和项目面试通关要点 简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等. 一 数据库 1.常问数据库查询.修改(SQL查询包含筛选查询.聚合查询和链 ...

  10. Eclipse带参数调试的方法

    下面是体现带参数调试的一个代码demo,首先输出参数的数量,然后依次输出每个参数. public class ArgsEx { public static void main(String[] arg ...