透视WPF 应用程序的利器
当我们看到一些设计新颖的网站时,可以借助浏览器自带的Inspector 工具或插件方便的浏览网站布局结构及逻辑。如果是WPF 应用程序能否看到控件的架构方式呢?本篇将介绍两款工具Snoop 和WPF Inspector 可用来窥探WPF 应用程序内部结构。
Snoop
打开Snoop 程序,它是以一个工具栏形式出现(如下图)。

接下来打开一个经典WPF 应用程序Expression Blend 4(下文简称:EB4),点击“刷新”按键即可看到Snoop 已经捕获到EB4。

点击“Snoop”(望远镜)按键,进入Snoop 捕获界面。与IE8 中的Developer Tools 效果相同,在左侧控件树列表中选择的内容会通过红色边框体现在WPF 应用程序中。

浏览WPF 程序控件属性,同时可以设置断点进行Debug。

比较欣赏Snoop 的一个功能是2D/3D 结构显示效果,点击工具栏中的“放大镜”按键即可浏览,这样看起来控件结构是不是形象了很多。

WPF Inspector
接下来再看看WPF Inspector,打开程序后WPF Inspector 会自动检测到当前启动的WPF 应用程序。

选择EB4 进入捕获界面,按住“Ctrl”键,并在EB4 中移动鼠标可以即时捕捉WPF 应用程序控件,同时显示其相关属性。

也可以按Logical 方式浏览程序控件结构。

查看控件的Trigger 事件。

WPF Inspector 还提供了实时修改WPF 应用程序控件属性功能,如下图所示修改了“File”菜单的背景颜色。

有了这两个工具就能够方便快捷的了解一些好的WPF 应用程序是如何架构和开发的,同时也可以进一步提高自己的WPF 水平。
透视WPF 应用程序的利器的更多相关文章
- 细数改善WPF应用程序性能的10大方法
WPF(Windows Presentation Foundation)应用程序在没有图形加速设备的机器上运行速度很慢是个公开的秘密,给用户的感觉是它太吃资源了,WPF程序的性能和硬件确实有很大的关系 ...
- 【C#】1.3 WPF应用程序学习要点
分类:C#.VS2015 创建日期:2016-06-14 使用教材:十二五国家级规划教材<C#程序设计及应用教程>(第3版) 一.要点概述 <C#程序设计及应用教程>(第3版) ...
- WPF 获取程序路径的一些方法,根据程序路径获取程序集信息
一.WPF 获取程序路径的一些方法方式一 应用程序域 //获取基目录即当前工作目录 string str_1 = System.AppDomain.CurrentDomain.BaseDirector ...
- WPF 之 WPF应用程序事件
当新建一个wpf应用程序,会自动生成一个App.xaml和MainWindow.xaml文件. 其中 App.xam 用来设置Application,应用程序的起始文件和资源及应用程序的一些属性和事件 ...
- 11、创建不使用XAML的WPF应用程序
首先新建一个空的项目,然后添加一个类,引用一下程序集: PresentationCore.dll PresentationFramework.dll WindowsBase.dll namespace ...
- c++程序开发利器
c++程序开发利器 vc6visual stdio系列都很好,个人最喜欢vc6,主要原因是快捷,classview和wizardbar功能强大,其他vs秒杀其他的vs windbgWinDbg是在wi ...
- Mac OS X 程序员利器 – Homebrew安装与使用
Mac OS X 程序员利器 – Homebrew安装与使用 Homebrew安装与使用 什么是Homebrew? Homebrew is the easiest and most flexible ...
- WPF发布程序后未授予信任的解决办法
WPF发布程序后未授予信任的解决办法 基于浏览器的WPF应用程序由于需要比较高的操作权限,所以在项目的安全性属性中选择了“这是完全可信的应用程序”选项.可是,在发布部署后,在其他电脑上打开xbap文件 ...
- 【ASP.NET Web API教程】3.3 通过WPF应用程序调用Web API(C#)
原文:[ASP.NET Web API教程]3.3 通过WPF应用程序调用Web API(C#) 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的 ...
随机推荐
- 处理登录和cookie
做法 1: 可以一步一步cookies,毫无疑问,这非常麻烦. import requests params = {'',''} r = requests.post('',params) r = re ...
- hdu 3613 KMP算法扩展
Best Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- sublime text3 cssrem 快速px转rem插件
今天试验了下cssrem 在移动端如果需要px->rem非常方便 比较之前我自己用gulp提供的函数unit(70/@base,rem);转方便很多 1.git clone https://g ...
- vue.js源码学习分享(八)
/* */ var uid$1 = 0; /** * A dep is an observable that can have multiple * directives subscribing() ...
- Scrapy学习-18-去重原理
Scrapy去重原理 scrapy本身自带一个去重中间件 scrapy源码中可以找到一个dupefilters.py去重器 源码去重算法 # 将返回值放到集合set中,实现去重 def reque ...
- Vijos 1323: 化工厂装箱员
题形:DP 题意:A,B,C三种物品,一共N个,顺序摆放,按顺序拿.每次手上最多能拿10个物品,然后可以将某个类别的物品分类放好,再从剩下的拿,补全10个.问最少放几次,可以把所有物品分类好. 思路: ...
- 关于编写Windows程序中启动兼容性问题
之前用qt4编写Windows程序的时候遇到了一个软件在系统的兼容性问题:用户在win10系统下使用这个程序的时候,如果没有用低于win10版本的兼容模式运行的时候,存在运行某部分功能的时候无法使用的 ...
- 关于 Bellman-Ford 与 Floyd 算法的一点感想
在四种常用的最短路算法 Dijkstra, SPFA, floyd, Bellman-Ford 中, Dijks 和 SPFA 的使用较为普遍, 对大多数人来说, 也较为熟悉. 然而, floyd 与 ...
- 设置linux编码utf-8
#vim /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" source / ...
- Markdown的css样式源码
http://www.cnblogs.com/zhangjk1993/p/5442676.html https://github.com/zhangjikai/markdown-css https:/ ...