TOC

This article has been localized into Hungarian by the community.

Alap vezérlők:

A TextBlock vezérlő

A TextBlock önmagában nem egy vezérlő, mivel nem örököl a Control class-ból, de nagyrészt ugyanúgy kell használni, mint bármely másik WPF vezérlőt, úgyhogy mi is vezérlőnek fogjuk hívni az egyszerűség végett.

A TextBlock vezérlő egyike a legalapvetőbb vezérlőknek a WPF-ben, mégis nagyon hasznos. Szöveget jeleníthetsz meg vele a képernyőn, pont, mint a Label vezérlővel, de egy egyszerűbb és kevésbé erőforrás igényesebb módon. Közös megegyezés alapján a Label rövid, egysoros szövegeknek van (de tartalmazhat képet), míg a TextBlock jól működik többsoros stringek esetén is, de csak szöveget tárolhat (stringet). A Label és a TextBlock is sajátos előnyökkel jár, így hogy melyiket kell használnod, az nagyban a helyzettől függ.

Már használtunk egy TextBlock vezérlőt a "Hello, WPF!" cikkben, de most vessünk egy pillantást a Textblock-ra a legegyszerűbb formájában:

<Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="TextBlockSample" Height="100" Width="200">
    <Grid>
		<TextBlock>This is a TextBlock</TextBlock>
    </Grid>
</Window>

Ennél egyszerűbb nem is lehetne, és ha már olvastad az előző oktató fejezeteket, akkor nincs is benne semmi új. A szöveg a TextBlock belsejében egyszerűen egy rövid módja a TextBlock Text tulajdonságának beállítására.

A következő példában próbálkozzunk egy hosszabb szöveggel, hogy kiderítsük, hogyan bánik vele a TextBlock. Még hozzáadtam egy kis margin-t, csak hogy kicsit jobban nézzen ki.

<Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="TextBlockSample" Height="100" Width="200">
    <Grid>
		<TextBlock Margin="10">This is a TextBlock control and it comes with a very long text</TextBlock>
    </Grid>
</Window>

Hosszú stringek kezelése

Ahogy te is hamarosan rájössz a képernyőkép alapján, a TextBlock tökéletesen képes kezelni a hosszú, többsoros szövegeket, de magától nem fog csinálni semmit. Ebben az esetben a szöveg túl hosszú, hogy az egész látszódjon az ablakban, így a WPF rendereli a megjeleníthető szöveget, de többet nem.

Szerencsére több módja van ennek a kezelésére. A következő példában megmutatom az összeset, és azután külön el is magyarázom őket:

<Window x:Class="WpfTutorialSamples.Basic_controls.TextBlockSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="TextBlockSample" Height="200" Width="250">
    <StackPanel>
		<TextBlock Margin="10" Foreground="Red">
			This is a TextBlock control<LineBreak />
			with multiple lines of text.
		</TextBlock>
		<TextBlock Margin="10" TextTrimming="CharacterEllipsis" Foreground="Green">
			This is a TextBlock control with text that may not be rendered completely, which will be indicated with an ellipsis.
		</TextBlock>
		<TextBlock Margin="10" TextWrapping="Wrap" Foreground="Blue">
			This is a TextBlock control with automatically wrapped text, using the TextWrapping property.
		</TextBlock>
	</StackPanel>
</Window>

Szóval, van három TextBlock vezérlőnk, mindegyik más színben (a Foreground tulajdonság használatával) a könnyebb áttekinthetőségért. Mindegyik másként kezeli azt, hogy túl hosszú benne a szöveg:

A piros TextBlock egy LineBreak használatával manuálisan töri meg a sort a kívánt helyen. Ez teljes irányítást ad afelett, hogy hol akarod a szöveget új sorban folytatni, de ez nem túl rugalmas a legtöbb helyzetben. Ha a felhasználó kinagyítja az ablakot, a szöveg ugyan abban a pozícióban fog törni, még ha most már elég hely is van, hogy az egész szöveg kiférjen egy sorban.

A zöld TextBlock egy TextTrimming tulajdonságban CharacterEllipsis érték használatával mutat a TextBlock végén szókihagyást (...), amikor már nem fér több szöveg a vezérlőbe. Ez egy gyakori eljárás annak mutatására, hogy van még szöveg, de nincs hely meg is jeleníteni azt. Ez jó eljárás, ha van egy szöveged, ami túl hosszú lehet, de egyáltalán nem akarod egynél több sorban mutatni. A CharacterEllipsis alternatívájaként használhatod a WordEllipsis-t, ami az utolsó megjeleníthető szó után nyírja meg a szöveget az utolsó karakter helyett, így elkerülve a félig megjelenített szavakat.

A kék TextBlock egy TextWrapping tulajdonságban Wrap értéket használ, hogy a TextBlock új sort kezdjen, ha a következő szó már nem fér ki az előző sorba. Az első TextBlock-kal ellentétben, ahol manuálisan adtuk meg, hogy hol törjön a szöveg, itt ez teljesen automatikusan és jobban történik: Automatikusan átállítja magát annak függvényében, hogy a TextBlock-nak több, vagy kevesebb helye lesz. Próbáld a példában mutatott ablakot össze-, vagy széthúzni, hogy te is lásd, hogyan frissül a sortörés az adott helyzetben.

Itt átnéztük, hogy hogyan kezelhető egy egyszerű string a TextBlock-ban. A következő fejezetben a TextBlock pár haladóbb funkciójával ismerkedünk meg, amik lehetővé teszik a szöveg más stílusban való megjelenítését TextBlock belsejében, és még sok egyébbel is.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!