S'il vous plaît aidez-moi à comprendre le résultat de cette opération. J'ai une application de test simple qui contient le XAML suivant.WPF RichTextBox Span change pour exécuter
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<RichTextBox x:Name="rtb">
<FlowDocument>
<Paragraph>
<Span x:Name="def" Tag="default">
<Run>asd</Run>
</Span>
</Paragraph>
</FlowDocument>
</RichTextBox>
<TextBox x:Name="tx" Grid.Row="1" TextWrapping="Wrap"/>
</Grid>
J'ai le code suivant derrière.
public MainWindow()
{
InitializeComponent();
rtb.TextChanged += Rtb_TextChanged;
}
private void Rtb_TextChanged(object sender, TextChangedEventArgs e)
{
tx.Text = XamlWriter.Save(rtb.Document);
}
Quand je lance ce code, et tapez quelques lettres dans le RichTextBox
ci-dessus, au-dessous montre la zone de texte me XAML.
Etrangement, il perd l'envergure et se convertit en course.
<FlowDocument PagePadding="5,0,5,0" AllowDrop="True" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Paragraph>as
<Run xml:lang="en-in" xml:space="preserve"> </Run> d
</Paragraph>
</FlowDocument>
Je ne suis pas en mesure de contrôler le changement de cette durée à exécuter. J'ai besoin d'aide pour ça.
Vous remplacez le contenu de l'objet '' lorsque vous tapez. C'est juste faire ce que vous lui demandez de faire. Il s'agissait d'un objet imbriqué avec un '' contenant un ''. Votre nouveau contenu (entré manuellement) consiste uniquement en un 'Run'. –
Alors, y a-t-il un moyen de le diriger dans l'intervalle plutôt que de le surcharger manuellement? – Naresh
Une façon que je sais est de remplacer les événements clés et d'ajouter du texte. Mais c'est très ennuyeux. Une autre façon dont je garde un élément d'interface utilisateur hiddent et ça ne change pas. Mais je pense que ceux-ci ne sont pas précis. – Naresh