none
wpf RichTextBox GetLineStartPosition 在某种情况下不能识别换行? RRS feed

  • 问题

  • TextPointer tp1 = rtb.Selection.Start.GetLineStartPosition(1);

    这样可以选中我选择行的下一行的TextPointer,ok,没问题。

    但是:

    TextPointer t1 =  rtb.Document.ContentStart.GetLineStartPosition(1);

    我这样使用,却不能取到下一行的TextPointer。

    他会引发一个异常,后来发现,这种情况下,所有的内容(不管你有几行)都会被当做一个只有一行的超长字符串(其中包括换行符)。

    那么不管你有几行内容,他都认为只有1行内容,那么就取不到所谓的“下一行”。

    这是什么问题?

    2014年9月3日 4:03

全部回复

  • 楼主 你好,

    首先,在WPF中,RTB中的Document是一个FlowDocument,我们可以在RTB中自由插入多个FlowDocument,此时需要注意,这个FlowDocument本身是否设置了换行,还是通过布局来实现的换行。如果一整个FlowDocument中没有换行符的话,会默认将当前的一个FlowDocument当成一行来处理。

    如果对我的解释有疑问,请在原帖上回复。

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年9月4日 1:51
    版主
  • 一整个FlowDocument中有换行符!我上述描述中已表明。

    是同一段有换行的文字,分别用上述两种方法调用,得到的结果不同,所以我才有疑问。

    2014年9月4日 2:26