2014-05-05 127 views
0

我已經將項目從https://silverlightcontrib.codeplex.com/轉換爲WPF(github https://github.com/jogibear9988/silverlightcontrib)以獲得WPF中的EMF/WMF圖元文件支持。ContentControl WPF不顯示內容

現在我的概率是,EMF類使用ContentControl來顯示它的內容。內容也已設置,但不顯示任何內容。如果我在WPF-Inspector中檢查它,我發現EMF控件的內容列在「邏輯樹」中,但不在Visual!中。任何人都可以幫我解決這個問題嗎?

的叉的當前狀態爲在線狀態(是否有人會看代碼!)

如果我看探聽一切似乎好:

enter image description here

你看,內容呈現有一個內容集和填充,但它不進入可視樹...

這是來自WPF檢查員的邏輯樹: enter image description here

而且這裏的視覺: enter image description here

回答

1

我對Silverlight並不是很熟悉,但是在WPF中,當您覆蓋MeasureOverride(...)ArrangeOverride(...)時,您必須測量並排列控件的子項,以便他們可以測量和排列子項等等。 對於您的情況,您必須在Emf類中包含對base.MeasureOverride(...)base.ArrangeOverride(...)的調用,該類繼承自ContentControl

+0

我真是一個白癡....感謝您的幫助。 –

1

兩個最有可能的問題是,你的ContentControl使用ControlTemplate有沒有ContentPresenter(上,是專門使用默認Content財產以外的東西之一)或者說,它是使用空的DataTemplate作爲其ContentTemplate。您應該可以通過在運行時檢查來檢查其中的任何一種。

+0

我使用ContentControl的默認模板,沒有Datatemplate,所以我認爲它應該工作? –

0

我還沒有弄明白這一點,但這與尺寸有關。在Snoop中,顯示RenderSize爲0,0,而在檢查器中,實際的高度/寬度也顯示爲0 - 您可以看到紅色高亮檢查器在元素周圍繪製的是一個小點而不是矩形。我猜測EMF控件中有一些Silverlight特定的行爲不直接向WPF移植。

+0

我現在試着設置ContentPresenter的高度和高度,但內容仍然沒有呈現...... –

相關問題