Опубликован: 15.06.2011 | Доступ: свободный | Студентов: 708 / 59 | Оценка: 4.25 / 4.00 | Длительность: 14:09:00
Лекция 11:

Silverlight. Элементы управления

RichTextBox

RichTextBox (Рис 22.12) - элемент управления редактированием форматированного текста, который поддерживает форматированный текст, гиперссылки, встроенные рисунки и прочее форматированное содержимое, можно использовать для отображения, ввода, форматирования и редактирования форматированного текста.

Таблица 22.6. Ключевые свойства класса System.Windows.Controls.RichTextBox
Свойство Тип Описание
AcceptsReturn bool Получает или задает значение, определяющее, разрешено ли в текстовом поле использование и отображение символов новой строки.
BaselineOffset double Получает значение смещения каждой строки текста относительно направляющей.
HorizontalScrollBarVisibility ScrollBarVisibility Получает или задает видимость горизонтальной полосы прокрутки.
IsReadOnly bool Получает или задает значение, определяющее, разрешено ли пользователю изменять текст в текстовом поле.
MaxLength Int32 Получает или задает значение, определяющее максимально разрешенное число символов пользовательского ввода.
SelectedText string Получает или задает содержимое текущего выделенного фрагмента в текстовом поле.
Пример элемента управления RichTextBox

Рис. 22.12. Пример элемента управления RichTextBox

XAML код элемента RichTextBox представленного на Рис. 22.12:

<RichTextBox TextWrapping="Wrap" IsReadOnly="False">
<Paragraph>
This is Paragraph 1.
</Paragraph>
<Paragraph
FontSize="16"
TextAlignment="Right"
FontFamily="Courier New">
<Underline>
This is right aligned formatted paragraph
<LineBreak/>
Second formatted line
</Underline>
</Paragraph>
<Paragraph>
This is inline image..
<InlineUIContainer>
<Image Source="res/5.jpg" Height="150" Width="200"
Stretch="UniformToFill"/>
</InlineUIContainer>
</Paragraph>
<Paragraph>
<LineBreak/>
Inserting Grid Panel to the RichTextBox
<LineBreak/>
<InlineUIContainer>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0"
Background="Beige">
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="Row = 0, Column = 0"/>
</Border>
<Border Grid.Row="0" Grid.Column="1"
Background="BurlyWood">
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="Row = 0, Column = 1"/>
</Border>
<Border Grid.Row="1" Grid.Column="0"
Grid.ColumnSpan="2" Background="DarkKhaki">
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center" >
<TextBlock Text="Row = 0, Column = 1"/>
<TextBlock HorizontalAlignment="Center"
Text="ColumnSpan = 2"/>
</StackPanel>
</Border>
</Grid>
</InlineUIContainer>
</Paragraph>
</RichTextBox>
AutoCompleteBox

AutoCompleteBox (Рис 22.13) - элемент управления, который предоставляет текстовое поле для пользовательского ввода и раскрывающийся список, содержащий возможные совпадения с вводимыми в текстовое поле данными.

Пример элемента управления AutoCompleteBox

Рис. 22.13. Пример элемента управления AutoCompleteBox

XAML код элемента AutoCompleteBox представленного на Рис. 22.13:

<UserControl x:Class="chapter3.AutoCompleteBoxDemo"
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/markupcompatibility/
2006"
mc:Ignorable="d"
xmlns:input="clr-namespace:System.Windows.Controls;
assembly=System.Windows.Controls.Input"
d:DesignHeight="300" d:DesignWidth="400">
<StackPanel x:Name="LayoutRoot" Background="White">
<TextBlock Text="Choose a state"/>
<input:AutoCompleteBox x:Name="stateSelection" Width="175"
HorizontalAlignment="Left"/>
</StackPanel>
</UserControl

C# код добавление элементов в список:

List<string> stateList = new List<string>();
stateList.Add("Alabama");
stateList.Add("Alaska");
// ...
stateList.Add("Wisconsin");
stateList.Add("Wyoming");
stateSelection.ItemsSource = stateList;