2009-02-27 12 views
7

W WPF jak wstawić zwykły tekst UIElement s? Na przykład pewna klasyfikacja tekstu zastąpiłaby rozpiętość tekstu z rozwijanym menu zawierającym określone opcje.UZOGODNIENIA WPF W tekście z tekstem "Ozdoby"

Użyłem obiektów takich jak Span, Bold, Hiperlink, które wprowadzają pewne lekkie modyfikacje tekstu, ale chcę móc zrobić coś bardziej drastycznego i niestandardowego. Czy mogę zrealizować podobny obiekt Inline, aby to osiągnąć?

Pracuję nad projektem, w którym potrzebuję pewnych zaawansowanych efektów wizualnych. W szczególności chcę zrobić coś podobnego do edytora źródłowego opartego na WPF Visual Studio 2010.

Będę miał fragment tekstu i różne elementy będą patrzeć na ten tekst, szukając kawałków o specjalnym znaczeniu. Po znalezieniu rozpiętości tekstu zapisze/zaznaczy tę rozpiętość. Następnie inny zestaw komponentów przejdzie do tajnego tekstu i doda ozdoby na podstawie ich klasyfikacji.

Możesz myśleć o tym jak tagi inteligentne dla WPF.

naprawdę nie mam pojęcia, od czego zacząć, cała dokumentacja na zaawansowanym tekstu w WPF jest o animacji, niestandardowe pędzle, konwersja do geometrii, itp ...

Odpowiedz

13

Spójrz na zajęciach InlineUIContainer i BlockUIContainer. Pozwalają one na osadzenie UIElement s w treści przepływu, np. FlowDocument lub TextBlock.

Oto przykład jednego przycisku inlined w TextBlock:

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

Dziękuję przyjacielu! Jesteś piękną, piękną osobą; i nie pozwól nikomu powiedzieć inaczej! – joshperry

+3

Wow WPF jest naprawdę najlepszą rzeczą, jaką Microsoft kiedykolwiek stworzył, a framework bes ui użyłem (ex-cocoa guy here heehee) – Pierreten