WPF RichTextBox 在 FlowDocument 中每行仅显示 1 个字符的文本
WPF RichTextBox shows text in FlowDocument only 1 character per line
我将 RichTextBox help 中的代码示例复制到一个空的 WPF window 中,如下所示:
<Window x:Class="RichTextBoxWidthProblem.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<Grid>
<RichTextBox>
<FlowDocument>
<Paragraph>
This is flow content and you can
<Bold>edit me!</Bold>
</Paragraph>
</FlowDocument>
</RichTextBox>
</Grid>
</Window>
结果看起来很奇怪:
为什么每行只写了 1 个字符,我该如何解决这个问题?
在花了一天时间试图找到这个问题的原因后,我只是 运行 应用程序,结果如下所示:
文本使用所有可用的 space 并在 Window 大小更改时重新格式化。这基本上意味着我的代码没有真正的问题,但是 Visual Studio 中的 WPF 设计器。经过进一步调查,我发现在设计器中,段落只有零像素宽。
如果您还想在设计器中看到合理的显示,请为 Window、Grid 或 RichTextBox 指定一个 Width。但是,当然,文本将不再使用所有可用的 space,而只使用您定义的宽度,这可能不是您想要的。如果您希望宽度仅供设计者使用,但不在 运行 期间使用,请在 Width:
之前添加 'd:'
<Window x:Class="RichTextBoxWidthProblem.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow" d:Width="333">
请在将其标记为重复之前先阅读此内容
我有一个不幸的经历,一个问题经常被标记为重复,而实际上并没有。我知道有几个关于 FlowDocument 不使用可用宽度的问题,但请注意,大多数建议设置 ColumnWidth 或其他宽度,这实际上会在设计器中正确显示,但 运行ning 应用程序将被限制为该宽度,这可能会很烦人(当 Window 变大时不会调整 FlowDocument 的大小)。
因此,重要的是 Whosebug 上的答案解释了在这种情况下它只是一个设计者问题,而不是真正的宽度问题。
我将 RichTextBox help 中的代码示例复制到一个空的 WPF window 中,如下所示:
<Window x:Class="RichTextBoxWidthProblem.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<Grid>
<RichTextBox>
<FlowDocument>
<Paragraph>
This is flow content and you can
<Bold>edit me!</Bold>
</Paragraph>
</FlowDocument>
</RichTextBox>
</Grid>
</Window>
结果看起来很奇怪:
为什么每行只写了 1 个字符,我该如何解决这个问题?
在花了一天时间试图找到这个问题的原因后,我只是 运行 应用程序,结果如下所示:
文本使用所有可用的 space 并在 Window 大小更改时重新格式化。这基本上意味着我的代码没有真正的问题,但是 Visual Studio 中的 WPF 设计器。经过进一步调查,我发现在设计器中,段落只有零像素宽。
如果您还想在设计器中看到合理的显示,请为 Window、Grid 或 RichTextBox 指定一个 Width。但是,当然,文本将不再使用所有可用的 space,而只使用您定义的宽度,这可能不是您想要的。如果您希望宽度仅供设计者使用,但不在 运行 期间使用,请在 Width:
之前添加 'd:'<Window x:Class="RichTextBoxWidthProblem.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow" d:Width="333">
请在将其标记为重复之前先阅读此内容
我有一个不幸的经历,一个问题经常被标记为重复,而实际上并没有。我知道有几个关于 FlowDocument 不使用可用宽度的问题,但请注意,大多数建议设置 ColumnWidth 或其他宽度,这实际上会在设计器中正确显示,但 运行ning 应用程序将被限制为该宽度,这可能会很烦人(当 Window 变大时不会调整 FlowDocument 的大小)。
因此,重要的是 Whosebug 上的答案解释了在这种情况下它只是一个设计者问题,而不是真正的宽度问题。