2009-08-01 11 views
18

Może nie używam właściwych słów kluczowych, ale wszystkie moje wyszukiwania są puste. Jak wymusić podział linii?Jak wymusić podział linii między dwoma wyrazami w etykiecie zadeklarowanej przez XAML?

mogę powiedzieć, że żaden z następujących prac:

<Label 
    Content="Line&br;Break:" /> 

<Label 
    Content="Line<br />Break:" /> 

<Label 
    Content="Line 
    Break:" /> 

<Label 
    Content="Line\nBreak:" /> 

Czy ktoś może podzielić się tą ściśle strzeżoną tajemnicę?

Dzięki.


EDIT:

Dobra, nieważne. I w końcu znalazłem to.

<Label 
    Content="Line&#x0a;Break:" /> 

Zdecydowanie nie jest łatwo zgadnąć!


EDIT 2:

Dobra, a teraz, aby uzyskać tekst być wyrównywane do prawej, poszedłem z tym:

<Label> 
    <TextBlock 
     TextAlignment="Right" 
     Text="Line&#x0a;Break:" /> 
</Label> 

Dzięki Julien na pomysł wykorzystania a TextBlock.

Odpowiedz

23

Jeśli trzeba tylko do wyświetlania tekstu, można użyć TextBlock zamiast Label:

<TextBlock> 
    Line<LineBreak/>Break: 
</TextBlock> 

Jeśli naprawdę potrzebują Label (np trzeba reagować na zdarzenia click), można owinąć powyższy kod wewnątrz Label.

+0

Nie potrzebuję odpowiedzi na zdarzenie kliknięcia, ale potrzebuję go do wyszarzenia po wyłączeniu (co, jak sądzę, TextBlock nie obejdzie się bez dodatkowego kodu/znaczników). Jednak obecnie mam problem z uzasadnieniem tekstu mojej etykiety, więc może potrzebuję czegoś innego. HorizontalAlignment = "Right" i HorizontalContentAlignment = "Right" nie mają żadnego efektu. – devuxer

+0

Można ustawić właściwość TextAlignment obiektu TextBlock w prawo. Jeśli chodzi o wyszarzenie, będzie to wymagać dodatkowego znacznika. –

+0

Dzięki, Julien. Byłem w stanie rozwiązać, umieszczając TextBlock wewnątrz etykiety (zobacz moje edycje powyżej). – devuxer

0

bym to zrobić:

<StackPanel> 
    <Label>First line</Label> 
    <Label>Second line</Label> 
</StackPanel> 

Jeśli formatowanie pobiera naprawdę zaangażowany, użyję FlowDocumentScrollViewer.

+1

To nie jest zamierzony sposób.Ponieważ są oddzielnymi kontrolkami, musisz radzić sobie z marginesami itd. (Działa bardziej jak akapit) TextBlock z LineBreaks jest znacznie czystszy! – Jowen

2

Jeśli chcesz nową linię w etykiecie:

<Label Content="Lorem &#10;ipsum" /> 

("10" to numer ASCII do nowej linii)

lub

<Label Content="Lorem &#xA;ipsum" /> 

("A" jest numer ascii dla nowej linii w języku heksadecymalnym)

Powiązane problemy