2010-07-14 42 views
0

我發現需要摺疊給定的WPF元素或控件時,它是視覺上空的,我很好奇其他人是否遇到過這種情況,如果是的話,是什麼類型的解決方案的工作。如何在沒有子元素時動態摺疊WPF元素,例如Border?

我目前的情況是我有一個邊界控制,要麼有一個子元素或不取決於各種情況。當Border.Child爲null或以其他方式取消設置時,我也想將Border.Visibility設置爲Collapsed。我試過做一個觸發器來做這似乎是最合乎邏輯的解決方案,但它似乎是不是一個依賴項屬性,所以當我試圖這樣我得到一個運行時異常。

作爲一種解決方法,現在我已綁定到DataContext中的一個不同的屬性,它與一個ValueConverter相結合,爲我提供了一個可用於實現所需結果的結果條件。我希望儘管有人可能會想出一些光滑的附加行爲或一些其他技巧,可以簡化摺疊WPF中的空元素。

回答

0

您是否考慮重新編制Expander控件?這已經完成了你在某種意義上描述的內容,尤其是如果您將標題設置爲消失,以便以編程方式控制摺疊狀態。

+0

而不是一個擴展器,您可以模板一個ContentControl並使用具有HasContent屬性的觸發器。 – Kris 2010-07-15 02:53:21

+0

與HasContent屬性一樣,我發現ItemsControl.HasItems屬性也很有用。 – jpierson 2010-07-22 17:26:22