mam ten XAML:Zagnieżdżone blokady tekstowe i hiperłącza, w jaki sposób replikować ten XAML w języku C#?
<TextBlock TextWrapping="Wrap" Foreground="Green"
Text="This is some Green text up front. ">
<TextBlock Foreground="Blue">
This is some Blue text.
</TextBlock>
This is some Green text following the Blue text.
<Hyperlink>
<TextBlock Text="And finally, this is a Hyperlink." TextWrapping="Wrap"/>
</Hyperlink>
</TextBlock>
I chciałbym wiedzieć jak replikować go proceduralnie w C#.
wiem jak stworzyć TextBlock
s w C# z czymś takim:
TextBlock tb = new TextBlock();
tb.Text="Some text"
I mogę postawić wielokrotność TextBlock
y razem w panelu w C#. Ale nie widzę sposobu, w jaki podchodzisz do wprowadzania TextBlock
s do innych TextBlock
s i TextBlock
s do s do s.
Czy niektóre obiekty kontenerowe i dodatkowe obiekty TextBlock
są tworzone automatycznie, w jakiś sposób? Lub czy TextBlock
ma pewne metody/właściwości, które pozwalają mu na inne elementy?
Inne powiązane pytania:
1. Jaki jest najlepszy sposób dodania czegoś podobnego do zdarzenia Click() do Hyperlink
?
2. Czy istnieje sposób na uzyskanie bardziej przejrzystego niebieskiego tekstu? W powyższym XAML, gdy tylko słowo po prawej stronie będzie musiało być zawijane, cały blok niebieskiego tekstu jest zawijany.
Dzięki za oświetlenie, które możesz dostarczyć.
Wielkie dzięki. Używałem Dockpanel plus wiele TextBlocks, które miały wszelkiego rodzaju problemy z zawijaniem. Przełączyłem się na Single TextBlock z wieloma Runami i kilkoma dodanymi Hyperlinkami i pięknie je zawijam. Nie mogłem wyzwolić zdarzenia HyperLink.RequestNavigateEvent. Próbowałem dodać go w wielu lokalizacjach od samego Hiperłącza, aż do okna bez powodzenia. Na razie Hyperlink.Click wydaje się robić lewy. Jakieś pomysły? –
Hej Drew, czy wiesz jak to zrobić poprzez xaml z wiązaniem danych? Dzięki temu n elementów jest wyświetlanych tak, jakby zagnieżdżono kilka hiperłączy w jednym bloku tekstowym. –