J'ai un fichier xaml très simple où je passe les mêmes éléments Paragraph et Run à la fois à un RichTextBox et à un FlowDocumentScrollViewer. Les deux semblent radicalement différents - ce qui n'est pas ce à quoi je m'attendais.RichTextBox vs FlowDocumentScrollViewer - Pourquoi sont-ils si différents?
Je comprends que vous pouvez styliser le FlowDocument ou les conteneurs pour qu'ils soient identiques, mais je m'attendais à ce qu'ils héritent tous deux des mêmes paramètres 'par défaut'.
Voici mon code:
<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>
Ma question
est-il un moyen d'assurer que les deux RichTextBox et FlowDocumentScrollViewer afficher le FlowDocument de la même manière? Idéalement, vous ne pouvez pas faire la différence entre eux - sans devoir coder en dur les marges, les polices, etc. dans l'un ou l'autre. Vous remarquerez dans mon exemple ci-dessus que mon bloc de texte nécessite une certaine marge pour que l'affichage soit le même que pour le RichTextBlock, mais je veux vraiment éviter d'avoir à faire quelque chose comme ça car il y aura sans aucun doute une situation où le réglage de la police ou de la culture brise tout cela horriblement.