2011-12-21 126 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這樣的容器控件使用命令式代碼以預期的堆疊方式來佈置子項。因爲我們碰巧知道它將如何運行,所以很容易認爲這事先很容易知道。但是如果你創建一個自定義控件來決定以完全隨機的方式佈局控件呢?你永遠無法展示最終結果如何實現。

相關問題