Silverlight - tekst

W tym rozdziale przyjrzymy się, co Silverlight oferuje wyświetlanie tekstu. Blok tekstu jest używany do renderowania tekstu i technologii Silverlight. Inne ważne funkcje to -

  • Może być używany do prostego zwykłego tekstu lub możesz zastosować mieszankę stylów formatowania.
  • Silverlight obsługuje standardowy zestaw wbudowanych czcionek.
  • Możesz także pobrać niestandardowe czcionki, jeśli styl wizualny aplikacji wymaga czegoś mniej zwyczajnego.

TextBlock

Aby wyświetlić tekst, używamy elementu podręcznika Silverlight, który jest lekką kontrolką do wyświetlania niewielkich ilości tekstu tylko do odczytu. W rzeczywistości widzieliśmy to już dość często, ponieważ jego podstawowe użycie nie wymaga tak naprawdę wielu wyjaśnień. Po prostu ustawiasz właściwość text i wyświetla on ten tekst za Ciebie.

<TextBlock Text = "Print Testing" HorizontalAlignment Center" FontFamily = "Georgia"/>

Hierarchiczne dziedziczenie klasy TextBlock jest następujące:

Podane poniżej są powszechnie używane properties z TextBlock klasa.

Sr. No. Właściwość i opis
1

ContentEnd

Pobiera obiekt TextPointer dla końca zawartości tekstowej w TextBlock.

2

ContentStart

Pobiera obiekt TextPointer dla początku zawartości tekstowej w TextBlock.

3

IsTextSelectionEnabled

Pobiera lub ustawia wartość wskazującą, czy zaznaczanie tekstu jest włączone w TextBlock za pomocą akcji użytkownika lub wywoływania interfejsu API związanego z wyborem.

4

IsTextSelectionEnabledProperty

Identyfikuje właściwość zależności IsTextSelectionEnabled.

5

LineHeight

Pobiera lub ustawia wysokość każdego wiersza zawartości.

6

MaxLines

Pobiera lub ustawia maksymalną liczbę wierszy tekstu wyświetlanych w TextBlock.

7

SelectedText

Pobiera zakres tekstu z zaznaczonego tekstu.

8

SelectionEnd

Pobiera końcową pozycję tekstu wybranego w TextBlock.

9

SelectionHighlightColor

Pobiera lub ustawia pędzel używany do wyróżniania zaznaczonego tekstu.

10

SelectionStart

Pobiera pozycję początkową tekstu zaznaczonego w TextBlock.

11

Text

Pobiera lub ustawia zawartość tekstową TextBlock.

12

TextAlignment

Pobiera lub ustawia wartość wskazującą wyrównanie w poziomie zawartości tekstowej.

13

TextTrimming

Pobiera lub ustawia zachowanie przycinania tekstu, które ma być stosowane, gdy zawartość przepełnia obszar zawartości.

14

TextWrapping

Pobiera lub ustawia sposób zawijania tekstu przez TextBlock.

Podane poniżej są powszechnie używane events z TextBlock klasa.

Sr. No. Opis wydarzenia
1

ContextMenuOpening

Występuje, gdy system przetwarza interakcję wyświetlającą menu kontekstowe.

2

SelectionChanged

Występuje po zmianie zaznaczenia tekstu.

Podane poniżej są powszechnie używane methods w TextBlock klasa.

Sr. No. Metoda i opis
1

Focus

Skupia TextBlock, tak jakby był to formant, z którym można ustawić fokus.

2

Select

Wybiera zakres tekstu w TextBlock.

3

SelectAll

Wybiera całą zawartość w TextBlock.

Biegać

Czasami potrzebujesz precyzyjnej kontroli nad formatowaniem i ustawieniem jednego stylu dla całego bloku tekstu. Czasami przydatne jest formatowanie pojedynczych słów lub nawet liter, a jeśli chcesz, to zamiast używać rozszerzeniaText właściwość, umieścisz tekst wewnątrz TextBlockjako treść. Jeśli używasz kodu, odpowiada to dodawaniu elementów doTextBlock właściwość inline.

Korzystając z tego podejścia, możesz dodać serię elementów uruchamiania. Każdy przebieg obsługuje tę samą rodzinę czcionek, grubość przednią, pierwszy plan i tak dalej, właściwości do kontrolowania stylu tekstu. Chociaż Run jest oddzielnym elementem, nie zakłóca to przepływu.

Spójrzmy na prosty przykład, który zawiera wiele Run element wewnątrz TextBlock. Poniżej podano kod XAML.

<UserControl x:Class = "SilverlightRunDemo.MainPage" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   mc:Ignorable = "d" 
   d:DesignHeight = "300" d:DesignWidth = "400">
	
   <Grid x:Name = "LayoutRoot" Background = "White"> 
	
      <TextBlock Width = "192" TextWrapping = "Wrap" FontFamily = "Verdana"> 
         <Run Text = "Hello, " /> 
         <Run FontWeight = "Bold" Text = "world!" /> 
         <Run Text = "You" /> 
         <Run FontStyle = "Italic" Text = " are  " /> 
         <Run Text = "learning" FontSize = "40" FontFamily = "01d English Text MT" /> 
         <Run Text = "   the " /> 
         <Run Text = "basics of " Foreground = "Blue" /> 
         <Run Text = " Silverlight." FontSize = "30" /> 
      </TextBlock> 
		
   </Grid> 
	
</UserControl>

Gdy powyższy kod zostanie skompilowany i wykonany, zobaczysz następujące dane wyjściowe.

Jak widać, ten blok tekstu jest uporządkowany przy użyciu różnych stylów formatowania przy użyciu rozszerzenia Run element.

Nawiasem mówiąc, nie musisz zawijać każdego fragmentu tekstu w przebiegu. Możesz pozostawić większość zawartości bloku tekstu jako zwykły tekst i po prostu zastosowaćrun do części, które wymagają innego formatowania, jak pokazano poniżej.

<TextBlock> Hello,  
   <Run FontWeight = "Bold" Text =" world!"/> 
</TextBlock>

Przerwanie linii

Silverlight zwykle ignoruje podziały wierszy w kodzie XAML. Zakłada się, że większość białych znaków jest tam, aby ułatwić ich czytanie, ponieważ faktycznie chcesz, aby ta przestrzeń się pojawiła.

Przyjrzyjmy się temu kodowi XAML, który zawiera trzy oddzielne wiersze tekstu.

<TextBlock>  
   This is not the end. 
   It is not even the beginning of the end. 
   But it is, perhaps, the end of the beginning 
</TextBlock>

Gdy powyższy kod zostanie skompilowany i wykonany, zobaczysz następujące dane wyjściowe.

Jak widać, zignorował podziały wierszy i wykonał cały tekst razem.

  • Jeśli włączysz text wrapping, umieści podziały wierszy tam, gdzie trzeba, aby dopasować tekst, ale zignoruje podziały wierszy w twoim przykładzie.

  • Jeśli chcesz tylko dodać wyraźne podziały wierszy, musisz dodać znacznik podziału wiersza w swoim bloku tekstowym. Tekst następujący po nim rozpocznie się w nowej linii.

Spójrzmy ponownie na ten sam przykład, dodając LineBreak etykietka.

<TextBlock FontSize = "16">  
   This is not the end. 
   <LineBreak/> 
	
   It is not even the beginning of the end. 
   <LineBreak/> 
	
   But it is, perhaps, the end of the beginning
</TextBlock>

Po wykonaniu powyższego kodu zobaczysz, że wygląda on teraz tak, jak określono w XAML.

Wbudowane czcionki

Silverlight ma ustalony zestaw wbudowanych rodzin czcionek. Ze względów historycznych czcionki mają różne nazwy rodzinne. Domyślna rodzina jest technicznie inna w systemie Mac OS i Windows, na przykład w systemie Mac OS jest to Lucida Grande, podczas gdy w systemie Windows jest prawie identyczna, ale nazywa się Lucida Sans Unicode.

Poniżej podano niektóre z najczęściej używanych czcionek.

Czcionki
Arial
Arial Black
Comic Sans MS
Courier New
Gruzja
Lucida Grande (Mac) lub Lucida Sans Unicode (Windows)
Czcionka Times New Roman
Trebuchet MS
Verdana