WPF文本块截止

WPF文本块截止,wpf,textblock,Wpf,Textblock,嗨,Guyz,我有一个固定宽度的WPF文本块,比如说100,如果字符串的宽度不合适,最后一个字符总是被截断,因为所有字符的大小都不一样。我不想剪切字符,而是想从那里跳过文本,只显示没有字符截断的文本。我想我不太理解您的用例。我的第一个建议是简单地动态调整TextBlock的大小。如果不可能,那么在文本块中设置字符串之前,您必须获得字符串的宽度并自己操作它(或者使用固定宽度字体,假设您可以并且您知道字符串的最大长度) 如果需要在显示字符串之前测量字符串的宽度,可以使用进行测量。您有两个选项来控制文

嗨,Guyz,我有一个固定宽度的WPF文本块,比如说100,如果字符串的宽度不合适,最后一个字符总是被截断,因为所有字符的大小都不一样。我不想剪切字符,而是想从那里跳过文本,只显示没有字符截断的文本。

我想我不太理解您的用例。我的第一个建议是简单地动态调整TextBlock的大小。如果不可能,那么在文本块中设置字符串之前,您必须获得字符串的宽度并自己操作它(或者使用固定宽度字体,假设您可以并且您知道字符串的最大长度)


如果需要在显示字符串之前测量字符串的宽度,可以使用进行测量。

您有两个选项来控制文本的换行和剪切:

  • TextWrapping
    可用于使文本流向下一行
  • texttiming
    可用于决定如何剪切不合适的文本
texttiming=None
(默认设置)将意味着不适合的文本将被隐藏,但它可能会减少字符的中间部分,这听起来像您描述的问题

texttiming=wordellission
texttiming=characterellission
将避免显示半个字符,但将在文本末尾附加“…”。这对用户来说可能会更好

如果您想在不添加省略号的情况下删除多余的字符,则必须使用下面介绍的技术