2012-02-10 53 views
1

在我們的Silverlight頁面中,我得到了具有不同值的組合框。選中時,某些值太長而無法放入摺疊的組合框。如何在組合框的選定值中省略號?

enter image description here

我想它ellipsise(「系統使用......」有三個點到底)。

在下拉列表中可以看到該值的全名,但是當摺疊時,我希望所選值爲省略號。這感覺就像是一個明顯的事情,因爲下降通常比摺疊控制提供更多的空間,但我仍然找不到一個明顯的方法來做到這一點。

回答

1

您可能想看看http://www.codeproject.com/Articles/37503/Auto-Ellipsis。 與Zenexar的建議類似,在一般情況下使用更高效的還原算法。但它也寫了其他類型的「省略號」,這可能也適合您的需要。

+0

這是一個經過深思熟慮的方法,兼顧了迭代複雜性和測量文本,所以我將其標記爲最佳答案。 – JOG 2013-12-06 04:44:32

0

我認爲最好的方法是檢查所選項目的長度。如果長度超過預定的字符長度,則切斷其餘部分並追加三個句點。

+0

你真的建議計算字符像素長度嗎? – JOG 2012-02-10 12:53:58

+0

我不認爲他建議計算像素長度。我認爲他建議根據字符長度進行近似。 – Zenexer 2012-02-11 05:03:27

1

以選定的UIElement。將RenderedWidth和RenderedHeight與DesiredSize進行比較,後者將根據元素的截斷方式進行調整。重複刪除字符,添加省略號,並使佈局無效,直到DesiredSize小於或等於RenderedWidth/RenderedHeight

+0

+1的信息,謝謝,但我希望更明顯和更少的修改。 – JOG 2012-02-13 13:23:28

+0

我不熟悉silverlight,我不知道你是否直接操縱數據源(字符串?),但如果是這樣,當你使用動態調整大小的控件時,似乎有點麻煩。特別是當它變得更小,然後變大時:被丟棄的角色消失了? – Xilconic 2013-12-03 11:17:17