2009-02-27 5 views
7

In WPF come è possibile inserire regolari UIElement in linea con il testo? Ad esempio una certa classificazione del testo sostituirà un intervallo di testo con un menu a discesa contenente opzioni specifiche.UIElements WPF in linea con "ornamenti" di testo

Ho usato oggetti come Span, Grassetto, Collegamento ipertestuale che apportano alcune leggere modifiche al testo in linea, ma voglio essere in grado di fare qualcosa di più drastico e personalizzato. Posso realizzare un oggetto Inline simile per realizzare questo?

Sto lavorando a un progetto in cui ho bisogno di alcune immagini di testo avanzate. Nello specifico voglio fare qualcosa di simile all'editor di sorgenti basato su Visual Studio 2010 WPF.

Avrò un pezzo di testo e vari componenti guarderanno quel testo alla ricerca di pezzi con significato speciale. Quando trova un intervallo di testo, registrerà/contrassegnerà quell'intervallo. Quindi un altro set di componenti andrà oltre il testo classificato e aggiungerà decorazioni in base alle loro classificazioni.

Si può pensare a questo come a smart tag per WPF.

davvero non ho idea da dove cominciare, tutta la documentazione sul testo avanzato in WPF è di circa l'animazione, pennelli personalizzati, convertire alla geometria, ecc ...

risposta

13

Date un'occhiata a classi InlineUIContainer e BlockUIContainer. Consentono di incorporare UIElement s in un contenuto di flusso, ad esempio FlowDocument o TextBlock.

Ecco un esempio di un pulsante inline in un TextBlock:

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

Grazie amico mio! Sei una persona bellissima e bellissima; e non permettere a nessuno di dirti diversamente! – joshperry

+3

Wow WPF è seriamente la cosa migliore che Microsoft abbia mai creato e il framework besu che ho usato (ex cacao qui heehee) – Pierreten