『QQ:1353814576』

WPF文本框全选复制时被自动截断只能复制第一行文本的解决办法


前些天使用wpf+paddleocr开发了一款windows离线截图提取文字的小工具,历时两天开发测试后工具自测效果不错,就赶紧火急火燎发布了

谁知道今天自己用的时候发现一个问题,识别出来的结果无论识别出多少数据 复制就只能复制首行 看了下后台代码识别结果是没问题的 但前端文本域控件就只能展示第一行 开始以为是TextBox的换行问题 于是换了RichTextBox,但最终结果还是一样,

网上百度了好几种类似问题的办法试了最终都无效

折腾好久无果后发现ocr识别出来的结果里 有很多 \0 ,估摸着问题就出在这里了导致文本框控件无法识别\0之后的文本内容出现了以上情况 处理办法很简单就是Replace替换掉即可

有个坑的地方这里说一下就我自己的情况来看直接使用ToString()后再进行替换是不行的 语言上不太好描述 直接上代码直观点

下面是使用的部分问题和修改后的代码

StringBuilder stringBuilder = new StringBuilder();
var list = await PaddleOCRHelper.Recognize();//ocr识别图像
for (int i = 0; i < list.Boxes.Length; i++)
{
    var item = list.Boxes[i];
    stringBuilder.AppendLine(item.Text);
}
//Model.Text = stringBuilder.ToString().Replace('\0',' ');//这样替换是不行的
Model.Text = stringBuilder.Replace('\0',' ').ToString();//这样替换掉就可以了