C#按矩形分割文本

C#按矩形分割文本,c#,algorithm,drawing,gdi+,calculation,C#,Algorithm,Drawing,Gdi+,Calculation,我有一个要求 我需要通过将字符串拟合成矩形对象来拆分字符串。我有字符串的字体、regionSize(大小为1780x880)和默认的StringFormat对象 这是我的密码: //文件1 公共静态类Utils{ 公共静态列表SplitByRect(字符串文本, 字体, 矩形布局, StringFormat(标准格式){ var输出=新列表(); 使用(var bmp=新位图(layoutRect.Width、layoutRect.Height)){ 使用(var gfx=Graphics.F

我有一个要求

我需要通过将字符串拟合成矩形对象来拆分字符串。我有字符串的字体、regionSize(大小为1780x880)和默认的StringFormat对象

这是我的密码:


//文件1
公共静态类Utils{
公共静态列表SplitByRect(字符串文本,
字体,
矩形布局,
StringFormat(标准格式){
var输出=新列表();
使用(var bmp=新位图(layoutRect.Width、layoutRect.Height)){
使用(var gfx=Graphics.FromImage(bmp)){
var strFormatC=(StringFormat)strFormat.Clone();
//strFormatC.FormatFlags |=StringFormatFlags.MeasureTracingSpace;
//strFormatC.FormatFlags=StringFormatFlags。;
//strFormatC.Trimming=StringTrimming.Word;
var startIdx=0;
for(var i=0;i=layoutRect.Height&&i+1
然后我在输出中使用相同的字体和相同的区域大小绘制每个字符串

以下是第一张图纸的结果: 注意:文本每边填充100个像素。文本矩形在中间。需要填充的空间在底部!!

但问题是文本没有覆盖矩形的整个大小。这可能是由于“MeasureString”返回的大小不正确所致


我做了什么错误?

试着把排版代词添加到测量字符串调用中。我不太理解代码:你给行加上空格来填充它们吗?这是必要的。我会考虑不使用规则空间,但是这是n-空间字符。它们更宽,如果需要的话可以删除。“我会尝试这样做。但是我不明白你在行中添加空格来填充行是什么意思。单词不会意外地正确填充行。因此,你需要在行之间添加额外的空格以实现目标。@TaW在这种情况下,不,我没有做任何事情来添加额外的空格。文本是原样的。嗯,如果给出大小和文本,可以是什么用于调整字体大小?