C# WPF FlowDocument空间大小不一致

C# WPF FlowDocument空间大小不一致,c#,wpf,spacing,C#,Wpf,Spacing,我正在使用FlowDocumentScrollViewer将日志输出打印到我的应用程序窗口,并且遇到了一些非常奇怪的间距问题。大多数空间的大小都是正确的,但在某些区域,我始终会得到过大的空间。下面是一个例子: 间距正确:“d复制E:\Projects” 显示内容:“dCopyingE:\Projects” 我不得不使用多个空格来反映上面的间距问题,但我保证它确实只是显示一个大小不正确的空格。通过将myFlowDocumentScrollViewer中的文本复制到记事本++之类的文本编辑器中,可以

我正在使用
FlowDocumentScrollViewer
将日志输出打印到我的应用程序窗口,并且遇到了一些非常奇怪的间距问题。大多数空间的大小都是正确的,但在某些区域,我始终会得到过大的空间。下面是一个例子:

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

我不得不使用多个空格来反映上面的间距问题,但我保证它确实只是显示一个大小不正确的空格。通过将my
FlowDocumentScrollViewer
中的文本复制到记事本++之类的文本编辑器中,可以轻松验证这一点。下面是我最简单的
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);
}

我从来没有见过这样的东西,在谷歌上搜索它是非常困难的,因为每个使用“间距”作为关键字的人实际上都意味着行高。。。感谢您的帮助

您可以尝试在
PrintLog
方法中添加
Run
对象,并修改其属性,如CharacterSpacing,还可以尝试其他属性。很抱歉,我目前没有访问Visual Studio的权限,因此无法实际尝试

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

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

您可以尝试在
PrintLog
方法中添加
Run
对象,并修改其属性,如CharacterSpacing,还可以尝试其他属性。很抱歉,我目前没有访问Visual Studio的权限,因此无法实际尝试

public void PrintLog(String s)
{
     var run = new Run();
     // modify run properties here    
    logParagraph.Inlines.Add(run);
}
您可以在此处查看MS文档:

您是否尝试过

LogBox.TextAlignment = TextAlignment.Left;
和/或

logParagraph.TextAlignment = TextAlignment.Left;
奥沃?因为正如我所见,在某些情况下,块会自动对齐以对齐/拉伸行中的文本~不知道为什么,但似乎会发生;你试过了吗

LogBox.TextAlignment = TextAlignment.Left;
和/或

logParagraph.TextAlignment = TextAlignment.Left;

奥沃?因为正如我所见,在某些情况下,块会自动对齐以对齐/拉伸行中的文本~不知道为什么,但似乎会发生;哇。我不敢相信这真的解决了问题。自动格式化的丢失!哇!我不敢相信这真的解决了问题。自动格式化的丢失!