Silverlight 如何在组合框中的选定值中省略号?

Silverlight 如何在组合框中的选定值中省略号?,silverlight,combobox,truncate,Silverlight,Combobox,Truncate,在我们的Silverlight页面中,我得到了具有不同值的组合框。选中时,某些值太长,无法放入折叠的组合框中 我希望它省略(“系统使用…”结尾有三个点) 在下拉列表中可以看到该值的全名,但在折叠时,我希望所选值省略。这感觉很明显,因为下拉菜单通常比折叠控件提供更多的空间,但我仍然找不到一个明显的方法来做到这一点。我认为最好的方法是检查所选项目的长度。如果长度超过预定的字符长度,则删除其余字符并附加三个句点。使用选定的UIElement。将RenderedWidth和RenderedHeight

在我们的Silverlight页面中,我得到了具有不同值的组合框。选中时,某些值太长,无法放入折叠的组合框中

我希望它省略(“系统使用…”结尾有三个点)


在下拉列表中可以看到该值的全名,但在折叠时,我希望所选值省略。这感觉很明显,因为下拉菜单通常比折叠控件提供更多的空间,但我仍然找不到一个明显的方法来做到这一点。

我认为最好的方法是检查所选项目的长度。如果长度超过预定的字符长度,则删除其余字符并附加三个句点。

使用选定的UIElement。将RenderedWidth和RenderedHeight与DesiredSize进行比较,后者将根据图元的切割方式进行调整。重复删除字符、添加省略号并使布局无效,直到DesiredSize小于或等于您可能要查看的RenderedWidth/RenderedHeight。
它类似于Zenexar的建议,在一般情况下使用了更有效的简化算法。但它也写了其他类型的“省略号”,可能也适合你的需要。

你真的建议计算字符像素长度吗?我认为他不是建议计算像素长度。我想他是在建议基于字符长度获得近似值。+1是为了提供信息,谢谢,但我希望有更明显和更少的修改。我不熟悉silverlight,我真的不知道您是否建议直接操作数据源(字符串?),但是如果是这样的话,当您使用动态调整大小的控件时,这似乎有点麻烦。特别是当它变得越来越小,然后越来越大时:删除的字符消失了?这是一个经过深思熟虑的方法,考虑到迭代的复杂性和测量文本,所以我将此标记为最佳答案。