У меня есть очень простой 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 требует некоторого Margin, чтобы он отображал то же самое, что RichTextBlock, но я действительно хочу избежать необходимости делать что-то подобное, поскольку, несомненно, возникнет ситуация, когда некоторый шрифт или культурная обстановка разрушает все это ужасно.