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üljön, miként bánik vele a TextBlock. Csinosítás végett hozzáadtam egy kis margót is.

<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

Hamarosan rájössz a képernyőkép alapján, hogy a TextBlock tökéletesen képes kezelni a hosszú, többsoros szövegeket, de magától nem csinál semmi egyebet. Ebben az esetben a szöveg túl hosszú, ahhoz, hogy az egész elférjen az ablakban, így a WPF csak azt jeleníti meg a mi kifér, a többit nem.

Szerencsére több mód is 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>

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

A piros TextBlock egy LineBreak elem használatával manuálisan töri meg a sort a kívánt helyen. Ez teljes szabadságot ad afelett, hogy hol akarod a szöveget új sorban folytatni, de 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 a TextTrimming tulajdonság CharacterEllipsis értéke felhasználásával jelzi a TextBlock végén a kihagyást (...), amikor már nem fér több szöveg a vezérlőbe. Ez gyakori eljárás annak jelzésére, hogy van még szöveg, de nincs elég hely megjeleníteni az egészet. A módszer jó, ha a szöveged 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üli a csak részben megjelenített szavakat.

A kék TextBlock aTextWrapping tulajdonság Wrap értékét használja arra, 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.

Áttekintettük hogyan kezelhető egy egyszerű string a TextBlock-ban. A következő fejezetben a TextBlock néhány haladóbb funkciójával ismerkedünk meg, amelyek lehetővé teszik a szöveg más stílusban való megjelenítését TextBlock belsejében, és még sok egyebet 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!