Ich versuche, den Benutzer zu ermöglichen, bestimmte Teile eines Textes (und nur diese Teile) mit einem RichTextBox
Steuerelement zu bearbeiten.WPF RichTextBox tokenisierte Bearbeitung
Mein Ansatz besteht aus TextBox
Steuerelemente in InlineUIContainer
Tags in einem FlowDocument
enthalten. Der folgende Code zeigt, was ich bisher erreicht habe:
<RichTextBox IsDocumentEnabled="True">
<FlowDocument>
<Paragraph>
<InlineUIContainer >
<TextBox Text="Field" MinWidth="65"></TextBox>
</InlineUIContainer>
<InlineUIContainer>
<TextBlock Text="Some text..." ></TextBlock>
</InlineUIContainer>
</Paragraph>
</FlowDocument>
</RichTextBox>
Das Problem dabei ist, dass der Benutzer in der Lage ist, die Elemente in der FlowDocument
und löschen Sie sie wählen ... schlechter können sie einen beliebigen Text bearbeiten, ist Teil eines Run
Elements oder sogar ausschneiden/einfügen Text im Dokument.
Ich hatte die Idee, die IsReadOnly="True"
auf RichTextBox
zu setzen, aber das deaktiviert auch TextBoxen bearbeitet ... Auch ich könnte die PreviewKeyDown aber das kann nicht jede Situation behandeln (d. H. Mit der rechten Maustaste und drücken Sie auf Einfügen).
Ich frage mich, ob es eine alternative Lösung oder sogar eine alternative Bibliothek oder Drittanbieter-Kontrolle, die hilft.
Kann nicht glauben, es funktioniert: D Danke. –
Schön. Ich hätte nicht erwartet, dass "IsReadOnly" eine geerbte Eigenschaft ist, und doch ist es. –