繁体   English   中英

WPF FlowDocument空间大小不一致

[英]WPF FlowDocument space size is inconsistent

我正在使用FlowDocumentScrollViewer将日志输出打印到我的应用程序窗口中,并且遇到了一些相当奇怪的间距问题。 大部分空间的大小都正确,但是在某些区域,我会一直变得太大。 这是一个例子:

正确间隔:“ d复制E:\\ Projects”
显示内容:“ d复制E:\\ Projects”

我不得不使用多个空格来反映上面的间距问题,但是我保证它确实只是显示一个大小不正确的空格。 通过将文本从我的FlowDocumentScrollViewer复制到文本编辑器(如notepad ++)中,可以轻松地进行验证。 这是我最简单的FlowDocumentScrollViewer的打印代码:

LogBox.Document = new FlowDocument();
LogBox.Document.Background = LogBox.Background;
LogBox.Document.Foreground = LogBox.Foreground;
LogBox.Document.Blocks.Add(logParagraph = new Paragraph());
logParagraph.Margin = new Thickness(0); //Tested making Margin 0, didn't help
logParagraph.FontFamily = font;
logParagraph.FontSize = defaultFontSize;

...

public void PrintLog(String s)
{
    logParagraph.Inlines.Add(s);
}

我从来没有见过这样的东西,并且在Google上搜索它非常困难,因为每个使用“ spacing”作为关键字的人实际上都意味着行高...任何帮助都将受到赞赏。

你有没有尝试过...

LogBox.TextAlignment = TextAlignment.Left;

和/或

logParagraph.TextAlignment = TextAlignment.Left;

OWO? 因为正如我所看到的,在某些情况下,块会自动对齐以对齐/拉伸行中的文本〜不知道为什么,但似乎会发生; o

您可以尝试在PrintLog方法中添加Run对象,并修改其属性(例如CharacterSpacing),也可以尝试其他属性。 抱歉,我目前无法访问Visual Studio,因此我无法实际尝试。

public void PrintLog(String s)
{
     var run = new Run();
     // modify run properties here    
    logParagraph.Inlines.Add(run);
}

您可以在此处查看MS文档: 运行类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM