2009-02-27 5 views
7

In WPF wie kann ich reguläre UIElement s inline mit Text? Zum Beispiel würde eine bestimmte Klassifizierung von Text eine Textspanne durch eine Dropdown-Liste mit bestimmten Optionen ersetzen.WPF UIElements Inline mit Text "Verzierungen"

Ich habe Objekte wie Span, Fett, Hyperlink, die einige leichte Änderungen an Text inline tun, aber ich möchte in der Lage sein, etwas drastischer und benutzerdefinierte tun. Kann ich ein ähnliches Inline-Objekt implementieren, um dies zu erreichen?

Ich arbeite an einem Projekt, wo ich einige fortgeschrittene Text-Visuals benötigt. Insbesondere möchte ich etwas tun, das dem WPF-basierten Visual Studio 2010-Quelleditor ähnelt.

Ich habe ein Stück Text und verschiedene Komponenten werden diesen Text suchen nach Stücken mit besonderer Bedeutung suchen. Wenn es einen Bereich von Text findet, wird es diesen Bereich aufzeichnen/markieren. Dann wird ein weiterer Satz von Komponenten über den klassifizierten Text gehen und Dekorationen basierend auf ihren Klassifikationen hinzufügen.

Sie können dies wie Smart-Tags für WPF denken.

ich wirklich keine Ahnung, wo zu beginnen, die gesamte Dokumentation über erweiterte Text in WPF ist über das Animieren benutzerdefinierte Pinsel, konvertieren zur Geometrie, etc ...

Antwort

13

Werfen Sie einen Blick auf die InlineUIContainer und BlockUIContainer Klassen. Sie ermöglichen es, UIElement s in einen Flussinhalt wie FlowDocument oder TextBlock einzubetten.

Hier ist ein Beispiel einer Schaltfläche in einem TextBlock inlined:

<TextBlock> 
    Some inline 
    <InlineUIContainer> 
     <Button Content="Hi" Click="Button_Click" /> 
    </InlineUIContainer> 
    inside the text. 
</TextBlock> 
+0

Danke mein Freund! Du bist eine schöne, schöne Person; und lass dich von niemandem anders erzählen! – joshperry

+3

Wow WPF ist ernsthaft das Beste, was Microsoft jemals erschaffen hat, und das besu-Framework, das ich benutzt habe (ex-Kakao-Typ hier heehee) – Pierreten