首页 > Windows开发 > 详细

WPF RichTextBox自动调整高度

时间:2019-04-15 10:59:03      阅读:225      评论:0      收藏:0      [点我收藏+]
原文:WPF RichTextBox自动调整高度

    大概两年前的这个时间段,当时做项目遇到了一个问题:环境VS2005、WinForm,需要RichTextBox根据内容自动调整高度。当时用了各种方法都没能解决,后来也尝试了好几次都没能完成这个功能。这个功能成了我的一个心病。

    这一段使用Silverlight,然后学习WPF,尝试用WPF中的RichTextBox来实现这个功能,没曾想还真实现了,而且不是很复杂。

  自定义一个控件,继承System.Windows.Controls.RichTextBox。

  关键代码:

 1         private void AdjustHeight()
2 {
3 Rect rectStart = Document.ContentStart.GetCharacterRect(LogicalDirection.Forward);
4 Rect rectEnd = Document.ContentEnd.GetCharacterRect(LogicalDirection.Forward);
5 var height = rectEnd.Bottom - rectStart.Top;
6 var remainH = rectEnd.Height / 2.0;
7 var myHeight = Math.Min(MaxHeight, Math.Max(MinHeight, height + remainH));
8
9 if (myHeight > BaseHeight)
10 {
11 this.Height = myHeight;
12 }
13 }

  关键的地方是,RichTextBox中能得到第一个字和最后一个字的位置。

 

获取WPF中的内容:

string ss = new TextRange(rtbENotes.Document.ContentStart, rtb.Document.ContentEnd).Text;

this.rtb.Document = new FlowDocument(new Paragraph(new Run(sss)));

 

 

WPF RichTextBox自动调整高度

原文:https://www.cnblogs.com/lonelyxmas/p/10709195.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!