У меня есть очень простой файл xaml, в котором я передаю одни и те же элементы Paragraph и Run как в RichTextBox, так и в FlowDocumentScrollViewer. Оба выглядят радикально по-разному, чего я не ожидал.
Я понимаю, что вы можете стилизовать либо FlowDocument, либо контейнеры, чтобы они выглядели одинаково, но я ожидал, что они оба наследуют одни и те же настройки «по умолчанию».
Вот мой код:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="80" />
<RowDefinition Height="80" />
<RowDefinition Height="80" />
</Grid.RowDefinitions>
<RichTextBox Grid.Row="0">
<FlowDocument>
<Paragraph>
<Run>Here is some text</Run>
<LineBreak />
<Run>Here is some more text</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
<TextBlock Grid.Row="1" Padding="6,0,0,0">
<Run>Here is some text</Run>
<LineBreak />
<Run>Here is some more text</Run>
</TextBlock>
<FlowDocumentScrollViewer Grid.Row="2" IsHitTestVisible="True" VerticalScrollBarVisibility="Hidden">
<FlowDocument>
<Paragraph>
<Run>Here is some text</Run>
<LineBreak />
<Run>Here is some more text</Run>
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
</Grid>
Мой вопрос
Есть ли способ гарантировать, что и RichTextBox, и FlowDocumentScrollViewer отображают FlowDocument одинаково? В идеале, чтобы вы не могли определить разницу между ними - без необходимости «жестко кодировать» поля, шрифты и т. Д. В одном или другом.
Вы заметите, что в моем примере выше мой Textblock требует некоторого поля, чтобы он отображался так же, как RichTextBlock, но я действительно хочу избежать необходимости делать что-либо подобное, поскольку, несомненно, будет ситуация, когда какой-то шрифт или настройка культуры ломает все это ужасно.