3
我有FixedDocument
页,我想要TextBlock
上,但它可以是,Textblock
不适合在页面上的高度。
所以我想从TextBlock
生成TextWrapping
,然后创建新的TextBlock
,根据高度将它放在页面上。
TextBlock
拥有LineCount
私有财产,这意味着它有TextLines
包装后,我可以以某种方式得到它。
与运行创造TextBlock
:WPF TextBlock获取线后文本编辑
public TextItem(PageType pageType, Run[] runs, Typeface typeFace, double fontSize)
: base(pageType)
{
this.TextBlock = new TextBlock();
this.TextBlock.Inlines.AddRange(runs);
if (typeFace != null)
this.TextBlock.FontFamily = typeFace.FontFamily;
if (fontSize > 0)
this.TextBlock.FontSize = fontSize;
this.TextBlock.TextWrapping = TextWrapping.Wrap; //wrapping
}
文本创建TextBlock
:
public TextItem(PageType pageType, String text, Typeface typeFace, double fontSize)
: base(pageType)
{
if (typeFace == null || fontSize == 0)
throw new Exception("Wrong textitem parameters");
this.TextBlock = new TextBlock();
this.TextBlock.Text = text;
this.TextBlock.FontFamily = typeFace.FontFamily;
this.TextBlock.FontSize = fontSize;
this.TextBlock.TextWrapping = TextWrapping.Wrap;
this.TextBlock.TextAlignment = TextAlignment.Justify;
this.TypeFace = typeFace;
}
设置图像宽度为TextBlock
,并得到DesiredSize
:
this.TextBlock.Width = document.CurrentPage.Content.ActualWidth;
this.TextBlock.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
http://pastebin.com/b6cZD5pp我知道一个办法让从文本块线,但这只是当控制已经开始时工作。 –
你看过wpf'FlowDocument'吗?指向[msdn](http://msdn.microsoft.com/en-us/magazine/cc163371.aspx)的链接。 –
是的,但FlowDocument不适合我。我尝试使用单页固定页面上的布局元素手册,它具有A4尺寸。这就是为什么我需要拆分文本块,如果它不适合。 –