2010-09-15 113 views
3

我有一個ItemsControl,我想適合一個小空間。通常情況下,它將顯示少於3個項目,但是,我希望它指示何時其項目數量多於它可以顯示的數量,並在指標上有彈出窗口以顯示所有項目(這仍然是一個小數目)。ItemsControl「溢出彈出」

當前的ItemsContainerPanel是一個WrapPanel,我希望能提供一個像TextBlock這樣的省略號類型的函數,但是它並沒有。

我無法找到「可見元素數」來顯示我的指標。任何人都可以提出一個建議,告訴我如何做到這一點?

(ItemsControl的是可以調整的用戶控件的一部分,並且ItemsControl的將調整,因爲它是一個明星級網格列)

謝謝, 克里斯

回答

0

我想你可能有創建一個自定義面板來做到這一點。您可以使用此link作爲模板開始。在ArrangeOverride方法中,您只想顯示完全適合可視區域的對象,然後使用一些邏輯來顯示省略號,如果該數小於總對象數。

0

我喜歡mdm20的解決方案,因爲感覺它是正確的方式,但是您可以獲取ItemsControl的容器(通常是Border控件)寬度,然後獲取包裝面板的寬度,然後獲取項目的寬度模板,以及圍繞剛剛獲得的這些寬度和邊框的寬度應用一些邏輯,看看它是否會給你以後的樣子?

1

ToolBar控件具有該功能,您可以將ToolBar的ControlTemplate替換爲看起來不像工具欄的控件模板。

+0

是的,自定義工具欄是最好的選擇。我不知道工具欄是否可用於SL。但是,爲此創建控件並不是一個好主意。一般來說,如果某些東西在SL中不可用。那麼,應該有一些可能的方式來實現這一點。 – 2010-10-13 08:39:43

+0

這種方法對我來說實際上並不好,因爲執行項目顯示的ToolbarPanel是一個StackPanel,而不是一個包裝面板,因此無法更改或重新設置。它是自定義面板 – Chris 2011-04-12 09:08:52