当我们有多行文本时,我们需要显示字符省略(即显示文本为裁剪)。
当内容大于多行textblock (即TextWrapping设置为Wrap)的宽度时,TextBlock显示尾随省略。
但是我们有一种情况,我们只需要用省略号显示一行,第一行的文本宽度是否大于文本块的宽度。
例如,考虑以下示例文本
String str = "1\n2\n3456\n45889";
textBlock.Text = str;TextBlock应该显示如下所示:
1...
ToolTip将显示整个文本。我试着研究一下这些可能性,但找不到多少帮助,我想知道社会上是否有人遇到过这样的情况,或者也许可以建议我?
因为,我们不应该更改底层数据对象(实时场景),而应该只更改呈现给用户的内容,因此我猜想转换器应该能做到这一点,但我仍然无法继续下去。或者你们还有别的选择吗?
发布于 2014-11-14 19:17:05
根据文本块创建一个自定义控件,它处理椭圆所需的业务逻辑。
将实际文本绑定到特定属性可以确保文本不被更改。在一个单独的属性中,有一个带有省略号的可视文本,当原始文本更改(依赖项属性更改事件)和随后显示在屏幕上的可视文本时,该文本将被更新。还将工具提示绑定到原始文本,这有助于在该场景中显示实际文本而不是省略文本。
通过创建一个简单的自定义控件,您可以在一个位置处理业务逻辑,并且可以在其他屏幕和项目中使用它。
https://stackoverflow.com/questions/26935555
复制相似问题