Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
blok jest podstawową kontrolką do wyświetlania tekstu tylko do odczytu w aplikacjach. Można go użyć do wyświetlania tekstu jednowierszowego lub wielowierszowego, hiperlinków wbudowanych i tekstu z formatowaniem, takimi jak pogrubienie, kursywa lub podkreślenie.
Czy jest to właściwa kontrola?
Blok tekstu jest zwykle łatwiejszy w użyciu i zapewnia lepszą wydajność renderowania tekstu niż blok tekstu sformatowanego, dlatego jest preferowany dla większości tekstu interfejsu użytkownika aplikacji. Możesz łatwo uzyskać dostęp do i używać tekstu z bloku tekstowego w aplikacji, poprzez uzyskanie wartości właściwości . Udostępnia również wiele z tych samych opcji formatowania w celu dostosowania sposobu renderowania tekstu.
Mimo że można umieścić podziały wierszy w tekście, blok tekstu jest przeznaczony do wyświetlania pojedynczego akapitu i nie obsługuje wcięcia tekstu. Użyj RichTextBlock, gdy potrzebujesz obsługi wielu akapitów, tekstu wielokolumna lub innych złożonych układów tekstu lub wbudowanych elementów interfejsu użytkownika, takich jak obrazy.
Aby uzyskać więcej informacji na temat wybierania właściwej kontrolki tekstu, zobacz artykuł controls (Kontrolki).
Tworzenie bloku tekstowego
- ważne interfejsy API: klasy, właściwość, właściwość
Otwórz aplikację Galerii WinUI 3 i zobacz w akcji
Ikona galerii WinUI 3 Aplikacja Galeria WinUI 3 zawiera interaktywne przykłady kontrolek i funkcji WinUI. Pobierz aplikację z Microsoft Store lub przejrzyj kod źródłowy GitHub.
Poniżej przedstawiono sposób definiowania prostej kontrolki i ustawiania jej właściwości na ciąg.
<TextBlock Text="Hello, world!" />
TextBlock textBlock1 = new TextBlock();
textBlock1.Text = "Hello, world!";
Model zawartości
Istnieją dwie właściwości, których można użyć do dodawania zawartości do : i .
Najczęstszym sposobem wyświetlania tekstu jest ustawienie właściwości na wartość ciągu, jak pokazano w poprzednim przykładzie.
Możesz również dodać treści, umieszczając elementy inline flow w właściwości w następujący sposób. ( jest domyślną właściwością zawartości , więc nie musisz jawnie dodawać jej w języku XAML).
<TextBlock>Text can be <Bold>bold</Bold>, <Underline>underlined</Underline>,
<Italic>italic</Italic>, or a <Bold><Italic>combination</Italic></Bold>.</TextBlock>
Elementy pochodzące z klasy , takie jak , , , i , umożliwiają różne formatowanie dla różnych części tekstu. Aby uzyskać więcej informacji, zobacz sekcję Formatowanie tekstu. Wbudowany element Hiperłącze umożliwia dodanie hiperlinku do tekstu. Jednak użycie wyłącza również szybkie renderowanie tekstu ścieżki, które zostało omówione w następnej sekcji.
Zagadnienia dotyczące wydajności
Jeśli to możliwe, język XAML używa bardziej wydajnej ścieżki kodu do układu tekstu. Ta szybka ścieżka zmniejsza ogólne użycie pamięci i znacznie skraca czas potrzebny na mierzenie i układanie tekstu. Ta szybka ścieżka ma zastosowanie tylko do , więc powinna być preferowana nad RichTextBlock, jeśli to możliwe.
Pewne okoliczności wymagają, aby powrócił do bardziej rozbudowanej i intensywniejszej pod względem zużycia CPU ścieżki kodu do renderowania tekstu. Aby zachować renderowanie tekstu na szybkiej ścieżce, pamiętaj, aby postępować zgodnie z tymi wytycznymi podczas ustawiania właściwości wymienionych tutaj.
- : Najważniejszym warunkiem jest to, że szybka ścieżka jest używana tylko podczas ustawiania tekstu przez jawne ustawienie właściwości w języku XAML lub w kodzie (jak pokazano w poprzednich przykładach). Ustawienie tekstu za pomocą kolekcji (na przykład ) spowoduje wyłączenie szybkiej ścieżki ze względu na potencjalną złożoność wielu formatów.
- OdstępZnaków: tylko domyślna wartość 0 jest szybką ścieżką.
- TextTrimming: tylko wartości , i są szybką ścieżką. Wartość wyłącza szybką ścieżkę.
Możesz ustawić właściwość DebugSettings.IsTextPerformanceVisualizationEnabled na podczas debugowania, aby określić, czy tekst używa renderowania szybką ścieżką. Gdy ta właściwość jest ustawiona na , tekst, który znajduje się na szybkiej ścieżce, jest wyświetlany w jasnozielonym kolorze.
Zazwyczaj ustawienia debugowania są ustawiane w przesłoniętej metodzie OnLaunched w pliku z kodem-behind dla , jak w tym przykładzie.
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
#if DEBUG
if (System.Diagnostics.Debugger.IsAttached)
{
this.DebugSettings.IsTextPerformanceVisualizationEnabled = true;
}
#endif
// ...
}
W tym przykładzie pierwsza jest renderowana przy użyciu szybkiej ścieżki, a druga nie.
<StackPanel>
<TextBlock Text="This text is on the fast path."/>
<TextBlock>This text is NOT on the fast path.</TextBlock>
<StackPanel/>
Po uruchomieniu tego kodu XAML w trybie debugowania z IsTextPerformanceVisualizationEnabled ustawioną na , wynik wygląda następująco.
renderowane w trybie debugowania
Ostrzeżenie
Kolor tekstu, który nie znajduje się na szybkiej ścieżce, nie jest zmieniany. Jeśli masz tekst w aplikacji z określonym kolorem jasnozielonym, jest on nadal wyświetlany w kolorze jasnozielonym, gdy znajduje się na wolniejszej ścieżce renderowania. Należy zachować ostrożność, aby nie mylić tekstu ustawionego na zielony w aplikacji z tekstem, który znajduje się w szybkiej ścieżce i kolorze zielonym ze względu na ustawienia debugowania.
Formatowanie tekstu
Mimo że właściwość przechowuje zwykły tekst, można zastosować różne opcje formatowania do kontrolki , aby dostosować sposób renderowania tekstu w aplikacji. Można ustawić standardowe właściwości kontrolki, takie jak FontFamily, FontSize, FontStyle, pierwszego planui CharacterSpacing, aby zmienić wygląd tekstu. Możesz również użyć wbudowanych elementów tekstowych i typografii dołączonych właściwości, aby sformatować tekst. Te opcje mają wpływ tylko na sposób, w jaki wyświetla tekst lokalnie, więc jeśli skopiujesz i wklejesz tekst do kontrolki tekstu sformatowanego, na przykład nie zastosowano żadnego formatowania.
Uwaga / Notatka
Pamiętaj, że jak wspomniano w poprzedniej sekcji, wbudowane elementy tekstowe i wartości typografii innej niż domyślna nie są renderowane na szybkiej ścieżce.
elementów
Przestrzeń nazw Microsoft.UI.Xaml.Documents zawiera różne wbudowane elementy tekstowe, których można użyć do formatowania tekstu, takich jak , , , i .
Serię ciągów można wyświetlić w , gdzie każdy ciąg ma inne formatowanie. W tym celu można użyć elementu , aby wyświetlić każdy ciąg z formatowaniem i oddzielając każdy element elementem .
Poniżej przedstawiono sposób definiowania kilku inaczej sformatowanych ciągów tekstowych w przy użyciu obiektów oddzielonych .
<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>
Oto wynik.
sformatowane z elementami uruchamiania
Typography
Właściwości dołączone do klasy Typography zapewniają dostęp do zestawu właściwości typografii Microsoft OpenType. Te dołączone właściwości można ustawić na lub na poszczególnych elementach tekstowych w linii. Te przykłady pokazują oba te elementy.
<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>
Powiązane artykuły
- sterowanie
- Klasa TextBox
- Klasa PasswordBox
- Właściwość String.Length