Silverlight - Текст

В этой главе мы рассмотрим, что Silverlight предлагает для отображения текста. Текстовый блок используется для всей визуализации текста и Silverlight. Другие важные функции -

  • Его можно использовать для простого обычного текста или применить сочетание стилей форматирования.
  • Silverlight поддерживает стандартный набор встроенных шрифтов.
  • Вы также можете загружать пользовательские шрифты, когда визуальный стиль вашего приложения требует чего-то менее обычного.

TextBlock

Для отображения текста мы используем элемент учебника Silverlight, который представляет собой легкий элемент управления для отображения небольших объемов текста, доступного только для чтения. Фактически, мы уже довольно много это видели, поскольку его базовое использование не требует особых объяснений. Вы просто устанавливаете свойство текста, и он отображает этот текст для вас.

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

Иерархическое наследование класса TextBlock выглядит следующим образом:

Ниже приведены наиболее часто используемые properties из TextBlock класс.

Sr. No. Описание недвижимости
1

ContentEnd

Получает объект TextPointer для конца текстового содержимого в TextBlock.

2

ContentStart

Получает объект TextPointer для начала текстового содержимого в TextBlock.

3

IsTextSelectionEnabled

Возвращает или задает значение, указывающее, разрешено ли выделение текста в TextBlock посредством действия пользователя или вызова API, связанного с выделением.

4

IsTextSelectionEnabledProperty

Идентифицирует свойство зависимостей IsTextSelectionEnabled.

5

LineHeight

Получает или задает высоту каждой строки содержимого.

6

MaxLines

Получает или задает максимальное количество строк текста, отображаемых в TextBlock.

7

SelectedText

Получает текстовый диапазон выделенного текста.

8

SelectionEnd

Получает конечную позицию текста, выбранного в TextBlock.

9

SelectionHighlightColor

Получает или задает кисть, используемую для выделения выделенного текста.

10

SelectionStart

Получает начальную позицию текста, выбранного в TextBlock.

11

Text

Получает или задает текстовое содержимое TextBlock.

12

TextAlignment

Получает или задает значение, указывающее на горизонтальное выравнивание текстового содержимого.

13

TextTrimming

Получает или задает режим обрезки текста, который используется, когда содержимое выходит за пределы области содержимого.

14

TextWrapping

Получает или задает способ обтекания текстом TextBlock.

Приведенные ниже обычно используются events из TextBlock класс.

Sr. No. Описание события
1

ContextMenuOpening

Происходит, когда система обрабатывает взаимодействие, отображающее контекстное меню.

2

SelectionChanged

Происходит при изменении выделения текста.

Ниже приведены наиболее часто используемые methods в TextBlock класс.

Sr. No. Метод и описание
1

Focus

Фокусирует TextBlock, как если бы это был обычно настраиваемый элемент управления.

2

Select

Выбирает диапазон текста в TextBlock.

3

SelectAll

Выбирает все содержимое TextBlock.

Бежать

Иногда вам нужен детальный контроль над форматированием и установка одного стиля для всего текстового блока. Иногда бывает полезно форматировать отдельные слова или даже буквы, и если вы этого хотите, вместо использованияText свойство, вы помещаете текст внутри TextBlockкак содержание. Если вы используете код, это соответствует добавлению элементов вTextBlock встроенное свойство.

Используя этот подход, вы можете добавить серию элементов запуска. Каждый запуск поддерживает одно и то же семейство шрифтов, начальную толщину, передний план и т. Д. Для управления стилем текста. Хотя Run является отдельным элементом, это не прерывает поток.

Давайте посмотрим на простой пример, который содержит несколько Run элемент внутри TextBlock. Ниже приведен код 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>

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий результат.

Как видите, этот текстовый блок имеет разные стили форматирования с помощью Run элемент.

Кстати, вам не нужно переносить каждый бит текста в цикл. Вы можете оставить большую часть содержимого текстового блока как обычный текст и просто применитьrun к частям, которые требуют другого форматирования, как показано ниже.

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

Разрыв строки

Silverlight обычно игнорирует разрывы строк в XAML. Предполагается, что большинство пробелов используется для облегчения чтения, потому что вы действительно хотите, чтобы это пространство появилось.

Давайте посмотрим на этот код XAML, в котором есть три отдельные строки текста.

<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>

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий результат.

Как видите, он проигнорировал разрывы строк и выполнил весь текст вместе.

  • Если вы включите text wrapping, он будет помещать разрывы строк там, где они должны быть, чтобы текст поместился, но он будет игнорировать разрывы строк в вашем примере.

  • Если вы просто хотите добавить явные разрывы строк, вам нужно добавить тег разрыва строки внутри текстового блока. Текст, следующий за ним, начнется с новой строки.

Давайте еще раз посмотрим на тот же пример, добавив LineBreak тег.

<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>

Когда приведенный выше код будет выполнен, вы увидите, что теперь он выглядит так, как указано в XAML.

Встроенные шрифты

Silverlight имеет фиксированный набор встроенных семейств шрифтов. Шрифты имеют разные фамилии по историческим причинам. Семейство по умолчанию технически отличается в Mac OS и Windows, например, в Mac OS это Lucida Grande, тогда как в Windows оно почти идентично, но называется Lucida Sans Unicode.

Ниже приведены некоторые из наиболее часто используемых шрифтов.

Шрифты
Arial
Arial Black
Comic Sans MS
Новый Курьер
Грузия
Lucida Grande (Mac) или Lucida Sans Unicode (Windows)
Times New Roman
Требушет MS
Вердана