Megosztás a következőn keresztül:


Text blokk

Az alkalmazások írásvédett szövegének megjelenítésére szolgáló elsődleges vezérlő a Text blokk. Használatával megjelenítheti az egysoros vagy többsoros szöveget, a beágyazott linkeket és a félkövér, dőlt vagy aláhúzott formázású szöveget.

Ez a megfelelő vezérlő?

A szövegblokkok általában egyszerűbben használhatók, és jobb szövegmegjelenítési teljesítményt nyújtanak, mint a rich text blokkok, ezért a legtöbb alkalmazás felhasználói felületének szövege előnyben részesíti. A Text tulajdonság értékének lekérésével egyszerűen hozzáférhet és használhatja a szöveget az alkalmazás szövegblokkjából. Emellett számos formázási lehetőséget biztosít a szöveg megjelenítésének testreszabásához.

Bár sortöréseket is elhelyezhet a szövegben, a szövegblokk egyetlen bekezdés megjelenítésére lett kialakítva, és nem támogatja a szöveg behúzását. Használjon RichTextBlock, ha több bekezdés, többoszlopos szöveg vagy más összetett szövegelrendezés, illetve beágyazott felhasználói felületi elemek, például képek támogatására van szüksége.

A megfelelő szövegvezérlő kiválasztásáról további információt a Text vezérlők cikkben talál.

Szövegblokk létrehozása

WinUI 3 Katalógus ikon A WinUI 3 Katalógus alkalmazás interaktív példákat tartalmaz a WinUI vezérlőire és funkcióira. Kérje le az alkalmazást a Microsoft Áruházból vagy keresse meg a forráskódot a GitHub webhelyen.

Az alábbiakban egy egyszerű TextBlock vezérlőelemet definiálhat, és hogyan állíthatja be a Text tulajdonságát sztringre.

<TextBlock Text="Hello, world!" />
TextBlock textBlock1 = new TextBlock();
textBlock1.Text = "Hello, world!";

Tartalommodell

Két tulajdonsággal adhat hozzá tartalmat egy TextBlock: Text és Inlines.

A szöveg megjelenítésének leggyakoribb módja, ha az Text tulajdonságot sztringértékre állítja, ahogyan az előző példában is látható.

A tartalmat úgy is hozzáadhatja, hogy beágyazott adatfolyam-tartalomelemeket helyez el a Inlines tulajdonságban, például így. (Inlines egy TextBlockalapértelmezett tartalomtulajdonsága, ezért nem kell explicit módon hozzáadnia az XAML-ben.)

<TextBlock>Text can be <Bold>bold</Bold>, <Underline>underlined</Underline>, 
    <Italic>italic</Italic>, or a <Bold><Italic>combination</Italic></Bold>.</TextBlock>

A Inline osztályból származó elemek, például Bold, Italic, Run, Spanés LineBreakkülönböző formázást tesznek lehetővé a szöveg különböző részeihez. További információkért lásd a Szövegformázás szakaszt. A beágyazott Hivatkozás elem lehetővé teszi hivatkozás hozzáadását a szöveghez. A Inlines használata azonban letiltja a gyors elérésiút-szöveg renderelését is, amelyről a következő szakaszban olvashat.

Teljesítménnyel kapcsolatos szempontok

Amikor csak lehetséges, az XAML hatékonyabb kódútvonalat használ a szöveg elrendezéséhez. Ez a gyors út csökkenti az általános memóriahasználatot, és jelentősen csökkenti a processzoridőt a szövegmérés és -rendezés elvégzéséhez. Ez a gyors útvonal csak a TextBlock-re vonatkozik, ezért lehetőség szerint előnyben kell részesíteni a RichTextBlock.

Bizonyos feltételekhez TextBlock vissza kell esnie egy funkciógazdagabb és processzorigényesebb kódútvonalra a szövegmegjelenítéshez. Ha a szövegmegjelenítést a gyors útvonalon szeretné tartani, mindenképpen kövesse ezeket az irányelveket az itt felsorolt tulajdonságok beállításakor.

  • Text: A legfontosabb feltétel, hogy a gyors elérési út csak akkor legyen használva, ha a Text tulajdonságot explicit módon állítja be XAML-ben vagy kódban (ahogy az az előző példákban is látható). Ha TextBlockInlines gyűjteményén (például <TextBlock>Inline text</TextBlock>) keresztül állítja be a szöveget, az több formátum lehetséges összetettsége miatt letiltja a gyors elérési utat.
  • CharacterSpacing: Csak a 0 alapértelmezett értéke a gyors elérési út.
  • TextTrimming: Csak a None, a CharacterEllipsisés a WordEllipsis értékek gyors útvonalak. A Clip érték letiltja a gyors elérési utat.

A DebugSettings.IsTextPerformanceVisualizationEnabled tulajdonságot állítsa true értékre a hibakeresés során annak megállapításához, hogy a szöveg gyors elérésiút-renderelést használ-e. Ha ez a tulajdonság trueértékre van állítva, a gyorsútvonalon lévő szöveg világoszöld színnel jelenik meg.

A hibakeresési beállításokat általában az OnLaunched metódus felülbírálásában adhatja meg a App.xamlkód mögötti lapon, ehhez hasonlóan.

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
#if DEBUG
    if (System.Diagnostics.Debugger.IsAttached)
    {
        this.DebugSettings.IsTextPerformanceVisualizationEnabled = true;
    }
#endif

// ...

}

Ebben a példában az első TextBlock gyors útvonal használatával jelenik meg, míg a második nem.

<StackPanel>
    <TextBlock Text="This text is on the fast path."/>
    <TextBlock>This text is NOT on the fast path.</TextBlock>
<StackPanel/>

Ha hibakeresési módban futtatja ezt az XAML-t IsTextPerformanceVisualizationEnabledtrueértékre állítja, az eredmény így néz ki.

Text hibakeresési módban renderelt

Caution

A gyorsútvonalon nem szereplő szöveg színe nem változik. Ha az alkalmazásban világoszöld színnel ellátott szöveg van megadva, az a lassabb megjelenítési útvonalon továbbra is élénkzöld színnel jelenik meg. Ügyeljen arra, hogy a hibakeresési beállítások miatt ne keverje össze az alkalmazásban zöldre állított szöveget a gyors elérési úton lévő és a zöld szöveggel.

Szöveg formázása

Bár a Text tulajdonság egyszerű szöveget tárol, különböző formázási beállításokat alkalmazhat a TextBlock vezérlőelemre a szöveg megjelenítésének testreszabásához az alkalmazásban. A szöveg megjelenésének módosításához beállíthatja az olyan szabványos vezérlőtulajdonságokat, mint FontFamily, FontSize, FontStyle, Előtérés CharacterSpacing. Beágyazott szövegelemeket és tipográfiai csatolt tulajdonságokat is használhat a szöveg formázásához. Ezek a beállítások csak azt befolyásolják, hogy a TextBlock hogyan jeleníti meg a szöveget helyileg, ezért ha a szöveget rich text vezérlőelembe másolja és illessze be, például nem alkalmaz formázást.

Megjegyzés:

Ne feledje, hogy az előző szakaszban leírtak szerint a beágyazott szövegelemek és a nem alapértelmezett tipográfiai értékek nem jelennek meg a gyors útvonalon.

Inline elemek

A Microsoft.UI.Xaml.Documents névtér számos beágyazott szöveges elemet biztosít, amelyekkel formázhatja a szöveget, például Bold, Italic, Run, Spanés LineBreak.

Karakterláncok sorozatát jelenítheti meg egy TextBlock-ban, ahol minden karakterlánc különböző formázással rendelkezik. Ezt úgy teheti meg, hogy egy Run elemet használ az egyes sztringek a formázásával való megjelenítésére, és minden Run elemet egy LineBreak elemmel elválaszt.

Az alábbiakban bemutatjuk, hogyan definiálhat különböző formátumú szöveges sztringeket TextBlock által, Run objektumok segítségével, amelyeket egy LineBreakválaszt el.

<TextBlock FontFamily="Segoe UI" Width="400" Text="Sample text formatting runs">
    <LineBreak/>
    <Run Foreground="Gray" FontFamily="Segoe UI Light" FontSize="24">
        Segoe UI Light 24
    </Run>
    <LineBreak/>
    <Run Foreground="Teal" FontFamily="Georgia" FontSize="18" FontStyle="Italic">
        Georgia Italic 18
    </Run>
    <LineBreak/>
    <Run Foreground="Black" FontFamily="Arial" FontSize="14" FontWeight="Bold">
        Arial Bold 14
    </Run>
</TextBlock>

Itt az eredmény.

Text futtatási elemekkel formázott

Typography

A tipográfiai osztály csatolt tulajdonságai hozzáférést biztosítanak a Microsoft OpenType tipográfiai tulajdonságainak egy készletéhez. Ezeket a csatolt tulajdonságokat beállíthatja a TextBlockvagy az egyes beágyazott szövegelemeken. Ezek a példák mindkettőt mutatják.

<TextBlock Text="Hello, world!"
           Typography.Capitals="SmallCaps"
           Typography.StylisticSet4="True"/>
TextBlock textBlock1 = new TextBlock();
textBlock1.Text = "Hello, world!";
Typography.SetCapitals(textBlock1, FontCapitals.SmallCaps);
Typography.SetStylisticSet4(textBlock1, true);
<TextBlock>12 x <Run Typography.Fraction="Slashed">1/3</Run> = 4.</TextBlock>