2011-12-21 81 views
8

当我使用CSS在网页上绘制布局时,可能会有数十个规则,分散在数十个文件中,这可能会影响元素实际显示的方式。这就是为什么DOM探索者是如此关键的工具 - 我可以在浏览器上选择一个元素,并确切地看到应用了哪些CSS规则。是否有一个WPF相当于一个DOM浏览器?

在WPF中,可能会有许多规则 - 样式和模板以及从代码隐藏注入的内联属性和设置 - 可能会进行交互以确定给定元素的显示方式。

有没有办法让我查看一个元素,比如一个ComboBox,并且快速确定它为什么绘制三倍于我认为应该绘制的高度?

回答

6

就个人而言,我用史努比。我对鼹鼠不熟悉,但我听说它是​​“更好”(主观)的,虽然它不是免费的。尽管如此,使用Snoop还是有一个技巧,如果你创建了一个不是主窗口的窗口,你可以通过Ctrl + Shift + MouseOver(实际上是目标视觉控件)来定位它。这花了我一段时间才弄清楚,知道这是超级有用!

+0

这让我浏览树和每个元素的属性。但是找到每个属性的来源并没有多大帮助。例如,我可以看到我的ComboBox的ActualHeight是40,RenderSize是200,40,但我不会说为什么它的ActualHeight是40. – 2011-12-21 23:06:50

+0

@Jeff Dege:Value Source。此外,您可以右键单击并选择属性上的“Delve”。我无法真正说明你遇到的问题是什么,但这两个工具就是你需要的。尽管发布代码并在单独的问题中寻求帮助。 – 2011-12-21 23:58:13

0

我不时使用的一款免费工具是Snoop。它适用于简单的事情,但可能会在复杂的事情上崩溃

0

WPF视觉效果的位置/大小布局不是按照CSS方式的一些声明式规则计算的。 WPF布局是使用命令式代码进行的,因此从查看起始XAML或生成的可视化树是如何实现它是不可能的。

像StackPanel这样的容器控件使用命令式代码以预期的堆叠方式来布置子项。因为我们碰巧知道它将如何运行,所以很容易认为这事先很容易知道。但是如果你创建一个自定义控件来决定以完全随机的方式布局控件呢?你永远无法展示最终结果如何实现。

相关问题