blok Text
Text blok je primární ovládací prvek pro zobrazení textu pouze pro čtení v aplikacích. Můžete ho použít k zobrazení jednořádkového nebo víceřádkového textu, vložených hypertextových odkazů a textu s formátováním, jako je tučné písmo, kurzíva nebo podtržení.
Je to správná kontrola?
Blok textu se obvykle snadněji používá a poskytuje lepší výkon vykreslování textu než blok rtfů, takže je upřednostňovaný pro většinu textu uživatelského rozhraní aplikace. K bloku textu v aplikaci můžete snadno přistupovat a používat ho tak, že získáte hodnotu vlastnosti Text. Nabízí také řadu stejných možností formátování pro přizpůsobení způsobu vykreslení textu.
I když do textu můžete vložit konce řádků, je blok textu navržený tak, aby zobrazoval jeden odstavec a nepodporuje odsazení textu. Použijte RichTextBlock, pokud potřebujete podporu více odstavců, textu s více sloupci nebo jiných složitých rozložení textu nebo vložených prvků uživatelského rozhraní, jako jsou obrázky.
Další informace o výběru správného ovládacího prvku textu najdete v článku Text ovládací prvky.
Vytvoření bloku textu
- důležitá rozhraní API:TextBlock třída, Text vlastnost, Inlines vlastnost
Galerie WinUI 3 obsahuje interaktivní příklady většiny ovládacích prvků, funkcí a funkcionalit WinUI 3. Získejte aplikaci z Microsoft Storu nebo získejte zdrojový kód na GitHubu.
Tady je postup, jak definovat jednoduchý ovládací prvek TextBlock a nastavit jeho Text
vlastnost na řetězec.
<TextBlock Text="Hello, world!" />
TextBlock textBlock1 = new TextBlock();
textBlock1.Text = "Hello, world!";
Model obsahu
K přidání obsahu do TextBlockmůžete použít dvě vlastnosti: Text a Inlines.
Nejběžnější způsob zobrazení textu je nastavení vlastnosti Text
na řetězcovou hodnotu, jak je znázorněno v předchozím příkladu.
Obsah můžete přidat také tak, že do vlastnosti Inlines
umístíte vložené prvky obsahu toku, například takto. (Inlines
je výchozí vlastnost obsahu TextBlock, takže ji nemusíte explicitně přidávat do XAML.)
<TextBlock>Text can be <Bold>bold</Bold>, <Underline>underlined</Underline>,
<Italic>italic</Italic>, or a <Bold><Italic>combination</Italic></Bold>.</TextBlock>
Prvky odvozené z třídy Inline, například Bold, Italic, Run, Spana LineBreak, umožňují různé formátování pro různé části textu. Další informace najdete v části Formátování textu. Vložený prvek Hypertextový odkaz umožňuje přidat do textu hypertextový odkaz. Použití Inlines
ale také zakáže vykreslování textu s rychlou cestou, které je popsáno v další části.
Důležité informace o výkonu
Kdykoli je to možné, XAML používá efektivnější cestu kódu k rozložení textu. Tato rychlá cesta snižuje celkové využití paměti a výrazně zkracuje čas procesoru na měření a uspořádání textu. Tato rychlá cesta platí pouze pro TextBlock, takže by měla být upřednostňovaná, pokud je to možné před RichTextBlock.
Některé podmínky vyžadují, aby se TextBlock vrátil ke složitější cestě kódu, která je náročnější na funkce a procesor pro vykreslování textu. Pokud chcete zachovat vykreslování textu na rychlé cestě, při nastavování zde uvedených vlastností nezapomeňte postupovat podle těchto pokynů.
-
Text: Nejdůležitější podmínkou je, že rychlá cesta se používá pouze v případě, že nastavíte text explicitním nastavením vlastnosti
Text
, a to buď v XAML, nebo v kódu (jak je znázorněno v předchozích příkladech). Nastavení textu prostřednictvím TextBlockkolekceInlines
(například<TextBlock>Inline text</TextBlock>
) zakáže rychlou cestu kvůli možné složitosti více formátů. - Mezery mezi znaky: Pouze výchozí hodnota 0 je rychlá cesta pro zpracování.
-
TextTrimming: Rychlá cesta jsou pouze hodnoty
None
,CharacterEllipsis
aWordEllipsis
. HodnotaClip
zakáže rychlou cestu.
Poznámka
pouze UPW: Před Windows 10 verze 1607 mají další vlastnosti vliv také na rychlou cestu. Pokud je vaše aplikace spuštěná ve starší verzi systému Windows, tyto podmínky způsobí vykreslení textu na pomalejší cestě. Další informace o verzích naleznete v tématu adaptivní kód verzí.
-
typografie: Rychlá cesta platí pouze pro výchozí hodnoty různých vlastností
Typography
. -
LineStackingStrategy: Pokud LineHeight není 0, hodnoty
BaselineToBaseline
aMaxHeight
deaktivují rychlou cestu. -
IsTextSelectionEnabled: Pouze
false
je rychlá cesta. Nastavením této vlastnostitrue
zakážete rychlou cestu.
Můžete nastavit vlastnost DebugSettings.IsTextPerformanceVisualizationEnabled na true
při ladění a určit, zda text používá rychlé vykreslování cest. Pokud je tato vlastnost nastavena na true
, text, který je na rychlé cestě, se zobrazí jasně zelenou barvou.
Nastavení ladění obvykle probíhá v přetěžování metody OnLaunched na stránce kódu pro App.xaml
, například takto.
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
#if DEBUG
if (System.Diagnostics.Debugger.IsAttached)
{
this.DebugSettings.IsTextPerformanceVisualizationEnabled = true;
}
#endif
// ...
}
V tomto příkladu se první TextBlock vykresluje pomocí rychlé cesty, zatímco druhá TextBlock se nevykresluje pomocí této cesty.
<StackPanel>
<TextBlock Text="This text is on the fast path."/>
<TextBlock>This text is NOT on the fast path.</TextBlock>
<StackPanel/>
Když tento XAML spustíte v režimu ladění s IsTextPerformanceVisualizationEnabled nastaven na true
, výsledek vypadá takto.
Opatrnost
Barva textu, který není na rychlé cestě, se nezmění. Pokud máte v aplikaci text s barvou, která je zadaná jako jasná zelená, zobrazí se ve světle zelené, když je na pomalejší cestě vykreslování. Dávejte pozor, abyste nezaměňovali text označený zeleně v aplikaci s textem, který je na rychlé cestě a zelený kvůli nastavení ladění.
Formátování textu
I když vlastnost Text ukládá prostý text, můžete u ovládacího prvku TextBlock použít různé možnosti formátování a přizpůsobit tak, jak se text v aplikaci vykresluje. Můžete nastavit standardní vlastnosti ovládacího prvku, jako je FontFamily, FontSize, FontStyle, popředía CharacterSpacing změnit vzhled textu. Můžete také použít vložené textové prvky a Typografie připojené vlastnosti k formátování textu. Tyto možnosti ovlivňují jenom to, jak TextBlock text zobrazuje místně, takže pokud text zkopírujete a vložíte do ovládacího prvku rtf, například se nepoužije žádné formátování.
Poznámka
Mějte na paměti, že jak je uvedeno v předchozí části, vložené textové prvky a hodnoty typografie, které nejsou výchozí, nejsou vykresleny rychlou cestou.
Inline elementy
Microsoft.UI.Xaml.Documents obor názvů poskytuje celou řadu vložených textových prvků, které můžete použít k formátování textu, například Bold, Italic, Run, Spana LineBreak.
V TextBlockmůžete zobrazit řadu řetězců, kde každý řetězec má jiné formátování. Můžete to provést pomocí elementu Run
k zobrazení každého řetězce s jeho formátováním a oddělením každého Run
elementu s elementem LineBreak
.
Tady je postup, jak definovat několik různých formátovaných textových řetězců v TextBlock pomocí Run
objektů oddělených LineBreak
.
<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>
Tady je výsledek.
Typografie
Připojené vlastnosti třídy Typografie poskytují přístup k sadě typografických vlastností Microsoft OpenType. Tyto připojené vlastnosti můžete nastavit buď na TextBlock, nebo u jednotlivých vložených textových prvků. Tyto příklady ukazují obojí.
<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>
UWP a WinUI 2
Důležitý
Informace a příklady v tomto článku jsou optimalizované pro aplikace, které používají Windows App SDK a WinUI 3, ale obecně platí pro aplikace pro UPW, které používají WinUI 2. Informace o konkrétních platformách a příklady najdete v referenčních informacích k rozhraní API pro UPW.
Tato část obsahuje informace, které potřebujete k použití ovládacího prvku v aplikaci pro UWP nebo WinUI 2.
Rozhraní API existují pro tento ovládací prvek v oboru názvů Windows.UI.Xaml.Controls.
- rozhraní API pro UWP:TextBlock třída, Text vlastnost, Inlines vlastnost
- Otevřete aplikaci Galerie WinUI 2 a podívejte se na TextBlock v akci. Galerie aplikace WinUI 2 obsahuje interaktivní příklady většiny ovládacích prvků, funkcí a možností WinUI 2. Získejte aplikaci z Microsoft Storu nebo získejte zdrojový kód na GitHubu.
Doporučujeme používat nejnovější WinUI 2 k získání nejaktuálnějších stylů, šablon a funkcí pro všechny ovládací prvky.
Související články
Windows developer