Элементы позиционирования, группировки или "Контейнеры" позволяют создавать структуру расположения элементов на форме проекта. Сочетания контейнеров и вложение их один в другой позволяет добиться определенного взаиморасположения и разбиения формы на определенные логические блоки. Так же без использования контейнеров нельзя расположить не один дочерний элемент управления.
К данным элементам относятся:
Canvas – наиболее часто используемый контейнер (Рис 22.1), представляет из себя прямоугольную форму. Имеет задаваемую высоту (Height) и ширину (Width). Может располагаться как на форме UserControl – а, так и в других контейнерах или на Canvas. Canvas – наиболее простой контейнер, который позволяет абсолютно располагать дочерние элементы.
(рис 22.1) Пример элемента управления CanvasXAML код элемента Canvas представленного на Рис. 22.1:
<UserControl x:Class="chapter3.CanvasDemo" 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= <ref src="http://schemas.openxmlformats.org/markupcompatibility/2006" type="url"/> mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Canvas x:Name="LayoutRoot"> <Button Canvas.Left="10" Canvas.Top="20" Content="Button at (10,20)"/> <TextBlock Text="Outer Canvas at (180,10)" Canvas.Left="180" Canvas.Top="10" FontSize="26"/> <Canvas Canvas.Top="60" Canvas.Left="10" Background="LightSkyBlue" Width="300" Height="100"> <TextBlock Text="Nested Canvas starts at (10,60)" Canvas.Left="0" Canvas.Top="0"/> <Button Canvas.Left="10" Canvas.Top="50" Content="Nested Canvas Button at (10,50)"/> </Canvas> </Canvas> </UserControl>
StackPanel – контейнер, который используется в случае, когда необходимо, чтобы дочерние элементы шли один за другим, например в виде списка или каких либо последовательно используемых элементов (Рис 22.2).
(рис 22.2) Пример элемента управления StackPanelXAML код элемента StackPanel представленного на Рис. 22.2:
<UserControl x:Class="chapter3.StackPanelDemo" 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" d:DesignHeight="300" d:DesignWidth="400"> <StackPanel x:Name="LayoutRoot" Background="White" Orientation="Vertical"> <TextBlock Margin="0,10" Text="Vertical and Horizontal (nested) oriented StackPanels Example"/> <StackPanel Background="LightSkyBlue" Orientation="Horizontal"> <TextBlock Text="Enter user id: "/> <TextBox Width="200" Height="20" VerticalAlignment="Top"/> </StackPanel> </StackPanel> </UserControl>
).
| Свойство | Тип | Описание |
|---|---|---|
Grid.Row |
Int 32 |
Возвращает или задает значение, указывающее, дочернее содержимое какой строки элемента управления Grid должно отобразиться. У первой строки индекс равен 0. Значение по умолчанию 0. |
Grid.Column |
Int 32 |
Возвращает или задает значение, указывающее столбец, в котором должно появиться дочернее содержимое объекта Grid У первого столбца индекс равен 0. Значение по умолчанию 0. |
Grid.RowSpan |
Int 32 |
Возвращает или задает значение, определяющее общее количество строк, которые заполняет дочернее содержимое в элементе управления Grid. Значение по умолчанию 1. |
Grid.ColumnSpan |
Int 32 |
Возвращает или задает значение, определяющее общее количество столбцов, которые заполняет дочернее содержимое в элементе управления Grid. Значение по умолчанию 1. |
На рис 11.3. наглядно показано как заполнятся содержание элемента управления Grid.
(рис 22.3) Пример элемента управления GridXAML код элемента Grid представленного на Рис. 22.3:
<UserControl x:Class="chapter3.GridDemo" 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" d:DesignHeight="300" d:DesignWidth="400" Height="300" Width="400"> <Grid x:Name="LayoutRoot" Background="White"> <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> </UserControl>
Элемент DockPanel - один из новых элементов-контейнеров который входит в Silverlight Toolkit и определяет область, в которой можно упорядочить дочерние элементы горизонтально или вертикально относительно друг друга. Для того что бы использовать этот элемент необходимо добавить ссылку (reference) Systems.Windows.Controls.dll, и добавить в XAML код строчку:
<UserControl x:Class="chapter3.DockPanelDemo" 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" xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="500">
На Рис. 22.4продемонстрировано два различных примера заполнения элемента DockPanel со свойством LastChildFill ( Свойство LastChildFill получает или задает значение, указывающее растягивается ли последний дочерний элемент в DockPanel с целью заполнения оставшегося доступного пространства) и значение true (значение по умолчанию true ).
(рис 22.4) Пример элемента управления DockPanel, значение свойства LastChildFill = trueXAML код DockPanel - "1" (Рис 22.4.):
<c:DockPanel Height="200" Width="200" Grid.Column="0" Grid.Row="1"> <Button c:DockPanel.Dock="Left" Content="Left"/> <Button c:DockPanel.Dock="Top" Content="Top"/> <Button c:DockPanel.Dock="Right" Content="Right"/> <Button c:DockPanel.Dock="Bottom" Content="Bottom"/> <Button c:DockPanel.Dock="Bottom" Content="Last Child"/> </c:DockPanel>
XAML код DockPanel - "2" (Рис 22.4.):
<c:DockPanel Height="200" Width="200" Grid.Column="1" Grid.Row="1"> <Button c:DockPanel.Dock="Top" Content="Top"/> <Button c:DockPanel.Dock="Bottom" Content="Bottom"/> <Button c:DockPanel.Dock="Left" Content="Left"/> <Button c:DockPanel.Dock="Right" Content="Right"/> <Button Content="Last Child"/> </c:DockPanel>
Для закрепления дочернего элемента в другом направлении необходимо установить для свойства LastChildFill значение false, а также указать явное направление закрепления для последнего дочернего элемента (рис 22.5.).
(рис 22.5) Пример элемента управления DockPanel, значение свойства LastChildFill = falseXAML код элемента DockPanel представленного на Рис. 22.5:
<c:DockPanel Height="200" Width="200" Grid.Column="2" Grid.Row="1" LastChildFill="False"> <Button c:DockPanel.Dock="Top" Content="Top"/> <Button c:DockPanel.Dock="Bottom" Content="Bottom"/> <Button c:DockPanel.Dock="Left" Content="Left"/> <Button c:DockPanel.Dock="Right" Content="Right"/> <Button c:DockPanel.Dock="Top" Content="Inner Top"/> <Button c:DockPanel.Dock="Bottom" Content="Inner Bottom"/> </c:DockPanel>
Элемент WrapPanel - один из новых элементов-контейнеров который входит в Silverlight Toolkit. Размещает дочерние элементы последовательно слева направо, разбивая содержимое до следующей строки. Последующее размещение происходит последовательно сверху вниз или справа налево, в зависимости от значения свойства Orientation. Для того что бы использовать этот элемент необходимо добавить ссылку (reference) Systems.Windows.Controls.dll, и добавить в XAML код строчку:
xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
| Свойство | Тип | Описание |
|---|---|---|
ItemHeight |
Double |
Получает или задает значение, указывающее высоту всех элементов, содержащихся внутри WrapPanel. |
ItemWidth |
Double |
Получает или задает значение, указывающее ширину всех элементов, содержащихся внутри WrapPanel. |
Orientation |
Orientation |
Получает или задает значение, указывающее размерность, с которой располагается дочернее содержимое (Принимает значения Horizontal или Vertical ) . |
(рис 22.6) Пример WrapPanelс горизонтальной ориентациейXAML код элемента WrapPanel представленного на Рис. 22.6:
<StackPanel> <TextBlock Text="Horizontally Oriented WrapPanel Example" Margin="5" FontWeight="Bold"/> <c:WrapPanel Width="500" Height="250" Orientation="Horizontal"> <Image Width="150" Height="100" Margin="2" Source="res/1.jpg"/> <Image Width="150" Height="100" Margin="2" Source="res/2.jpg"/> <Image Width="150" Height="100" Margin="2" Source="res/3.jpg"/> <Image Width="150" Height="100" Margin="2" Source="res/4.jpg"/> <Image Width="150" Height="100" Margin="2" Source="res/5.jpg"/> </c:WrapPanel> </StackPanel>
(рис 22.7) Пример WrapPanel с вертикальной ориентацией
Элемент TabControl (Рис 22.7.) - представляет элемент управления, содержащий несколько элементов, которые совместно используют одно пространство на экране. Объект TabControl можно использовать, чтобы сократить использование пространства экрана и в то же время сделать так, чтобы приложение отображало большой объем данных. Объект TabControl состоит из нескольких объектов TabItem, которые совместно используют одно пространство на экране. Одновременно отображается только один элемент TabItem из TabControl. Когда пользователь выбирает TabItem, то содержимое данного объекта TabItem становится видимым, а содержимое других объектов TabItem скрывается. Для использования необходимо использовать пространство имен System.Windows.Controls и добавить XAML код к странице где собирается использоваться данный элемент:
xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
| Свойство | Тип | Описание |
|---|---|---|
SelectedContent |
Object |
Возвращает содержимое текущего выбранного элемента TabItem |
SelectedIndex |
Int32 |
Возвращает или задает индекс первого элемента в текущем выделении или минус единицу (-1), если выделение является пустым. |
SelectedItem |
Object |
Получает или задает первый элемент в текущем выделении или возвращает значение NULL, если выделение является пустым. |
TabStripPlacement |
Dock |
Возвращает или задает способ выравнивания заголовков вкладок относительно содержимого вкладок. |
(рис 22.8) Пример элемента TabPanelXAML код элемента WrapPanel представленного на Рис. 22.8:
<UserControl x:Class="chapter3.TabControlDemo" 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" xmlns:c="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Canvas x:Name="LayoutRoot" Background="White"> <c:TabControl Canvas.Left="20" Canvas.Top="40" Width="300" Height="200"> <c:TabItem Header="Tab #1"> <Canvas Background="Red"></Canvas> </c:TabItem> <c:TabItem Header="Tab #2"> <Canvas Background="Green"></Canvas> </c:TabItem> <c:TabItem Header="Tab #3"> <Canvas Background="Blue"></Canvas> </c:TabItem> </c:TabControl> </Canvas> </UserControl>
Пространство имен System.Windows включает ряд основных элементов управления, составляющих ядро каждого приложения Microsoft Silverlight.
К элементам управления формы относятся:
(рис 22.9) Кнопочные элементы управленияВ Silverlight кнопка реализуется с помощью элемента управления Button (Рис 22.9-1). Кнопка реагирует на ввод пользователя с таких устройств ввода, как мышь, клавиатура или стилус, формируя событие Click. XAML код простой кнопки:
<Button Canvas.Left="74" Canvas.Top="20" Width="100" Content="Press me!" x:Name="button" Click="Button_Click" />
С# код события Button_Click:
private void Button_Click(object sender, RoutedEventArgs e)
{
//Put your custom code here
}
HyperlinkButton (Рис 22.9 - 3) обеспечивает на странице элемент с возможностью щелчка по нему для перехода по URI, заданному свойством NavigateUri (Uri перехода). XAML код гиперссылки:
<HyperlinkButton x:Name="hyperlinkButton" Canvas.Left="45" Canvas.Top="20" Width="200" Content="Click to visit Silverlight website" NavigateUri="http://www.silverlight.net" TargetName="_blank"/>
Свойство TargetName определяет, где будет открываться содержимое, располагающееся по заданному URL. Для вывода на экран содержимого URL доступны следующие опции:
_blank Открывает новое окно браузера без имени._self Замещает текущую HTML-станицу новым содержимым. Если HTML-станица отображается во фрейме, замещается только содержимое рамки._top Замещает текущую HTML-станицу новым содержимым. Даже если HTML-станица отображается во фрейме, меняется содержимое всего окна браузера._parent Замещает всю HTML-станицу.Элемент управления RepeatButton (Рис 22.9 -2) генерирует событие Click периодически с момента его нажатия и до момента отпускания. XAML код RepeatButton:
<RepeatButton Canvas.Left="73" Canvas.Top="20" Width="110" Content="Press and hold" Click="RepeatButton_Click"/>
С# код события RepeatButton_Click:
private int currentValue = 0;
private void RepeatButton_Click(object sender, RoutedEventArgs e)
{
currentValue++;
repeatButtonValue.Text = currentValue.ToString();
}
| Свойство | Тип | Описание |
|---|---|---|
Delay |
Int32 |
Возвращает или задает время в миллисекундах, в течение которого RepeatButton ожидает нажатия, прежде чем начать повтор. Значение не должно быть отрицательным |
Interval |
Int32 |
Возвращает или задает время в миллисекундах между повторами. Значение не должно быть отрицательным. |
Элемент управления CheckBox (Рис 22.9 - 4) предоставляет пользователю опцию для выбора. Обычно он представляется в виде прямоугольника, в котором пользователь может установить или убрать флажок. Он используется, когда имеется ряд опций на выбор и можно выбрать несколько из них.
<CheckBox x:Name="checkBox1" Canvas.Left="25" Canvas.Top="20" IsChecked="True" Content="Checked"/> <CheckBox x:Name="checkBox2" Canvas.Left="25" Canvas.Top="40" IsChecked="False" Content="Unchecked"/> <CheckBox x:Name="checkBox3" Canvas.Left="25" Canvas.Top="60" IsChecked="" IsThreeState="True" Content="Indeterminate"/>
Элемент управления RadioButton (Рис 22.9 – 5), подобно CheckBox используется для фиксирования выбора пользователя. Однако отличается от CheckBox тем, что обычно применяется в ситуациях, когда пользователь должен выбрать единственный вариант из ряда предлагаемых опций.
<RadioButton x:Name="radioButton1" GroupName="group1" Canvas.Left="40" Canvas.Top="20" Content="Red"/> <RadioButton x:Name="radioButton2" GroupName="group1" Canvas.Left="40" Canvas.Top="40" Content="Green"/> <RadioButton x:Name="radioButton3" GroupName="group1" Canvas.Left="40" Canvas.Top="60" Content="Blue"/> <RadioButton x:Name="radioButton4" GroupName="group1" Canvas.Left="40" Canvas.Top="80" Content="Cyan"/>
Элемент управления TextBox (Рис 22.10) обеспечивает пользователям область для ввода текста. В самой простой форме TextBox предоставляет область, в которую пользователь может ввести одну строку текста. Ключевые свойства элемента управления TextBox представлены в таблице 11.5.
| Свойство | Тип | Описание |
|---|---|---|
AcceptsReturn |
bool |
Получает или задает значение, определяющее, разрешено ли в текстовом поле использование и отображение символов новой строки. |
BaselineOffset |
double |
Получает значение смещения каждой строки текста относительно направляющей. |
HorizontalScrollBarVisibility |
ScrollBarVisibility |
Получает или задает видимость горизонтальной полосы прокрутки. |
IsReadOnly |
bool |
Получает или задает значение, определяющее, разрешено ли пользователю изменять текст в текстовом поле. |
MaxLength |
Int32 |
Получает или задает значение, определяющее максимально разрешенное число символов пользовательского ввода. |
SelectedText |
string |
Получает или задает содержимое текущего выделенного фрагмента в текстовом поле. |
SelectionBackground |
Brush |
Получает или задает кисть, используемую для заливки фона выделенного текста. |
SelectionForeground |
Brush |
Получает или задает кисть, используемую для текста, выделенного в текстовом поле. |
SelectionLength |
Int32 |
Получает или задает число символов, выделенных в текущий момент в текстовом поле. |
SelectionStart |
Int32 |
Получает или задает начальную позицию текста, выделенного в текстовом поле. |
Text |
string |
Получает или задает текстовое содержимое текстового поля. |
TextAlignment |
TextAlignment |
Получает или задает режим выравнивания текста в текстовом поле. |
TextWrapping |
TextWrapping |
Получает или задает способ разрыва строки в случае выхода текста за пределы ширины текстового поля. |
VerticalScrollBarVisibility |
ScrollBarVisibility |
Получает или задает видимость вертикальной полосы прокрутки. |
(рис 22.10) Пример элемента управления TextBoxXAML код элемента управления TextBox представленного на Рис. 22.10:
<TextBox Canvas.Top="30" Canvas.Left="120" Width="200"/> <TextBox Canvas.Top="60" Canvas.Left="120" Height="150" Width="200" AcceptsReturn="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"/>
Элемент управления PasswordBox (Рис 22.11) похож на TextBox элемент управления . PasswordBox во многих отношениях практически идентичен TextBox.
(рис 22.11) Пример элемента управления PasswordBoxXAML код элемента управления PasswordBox представленного на Рис 22.11:
<StackPanel x:Name="LayoutRoot" Background="White"> <TextBlock Margin="30,10,0,0" Text="Enter Password" FontWeight="bold"/> <PasswordBox x:Name="EnterPassword" Margin="30,10,0,0" PasswordChanged="EnterPassword_PasswordChanged" MaxLength="11" Height="25" Width="150" HorizontalAlignment="Left" /> <TextBlock Text="Display Entered Password" Margin="30,10,0,0" FontWeight="bold"/> <TextBox x:Name="DisplayPassword" Margin="30,10,0,0" HorizontalAlignment="Left" IsReadOnly="True" Height="25" Width="150" /> </StackPanel>
C# код события EnterPassword_PasswordChanged:
private void EnterPassword_PasswordChanged(object sender,
RoutedEventArgs e)
{
DisplayPassword.Text = EnterPassword.Password;
}
RichTextBox (Рис 22.12) - элемент управления редактированием форматированного текста, который поддерживает форматированный текст, гиперссылки, встроенные рисунки и прочее форматированное содержимое, можно использовать для отображения, ввода, форматирования и редактирования форматированного текста.
| Свойство | Тип | Описание |
|---|---|---|
AcceptsReturn |
bool |
Получает или задает значение, определяющее, разрешено ли в текстовом поле использование и отображение символов новой строки. |
BaselineOffset |
double |
Получает значение смещения каждой строки текста относительно направляющей. |
HorizontalScrollBarVisibility |
ScrollBarVisibility |
Получает или задает видимость горизонтальной полосы прокрутки. |
IsReadOnly |
bool |
Получает или задает значение, определяющее, разрешено ли пользователю изменять текст в текстовом поле. |
MaxLength |
Int32 |
Получает или задает значение, определяющее максимально разрешенное число символов пользовательского ввода. |
SelectedText |
string |
Получает или задает содержимое текущего выделенного фрагмента в текстовом поле. |
(рис 22.12) Пример элемента управления RichTextBoxXAML код элемента 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 (Рис 22.13) - элемент управления, который предоставляет текстовое поле для пользовательского ввода и раскрывающийся список, содержащий возможные совпадения с вводимыми в текстовое поле данными.
(рис 22.13) Пример элемента управления AutoCompleteBoxXAML код элемента 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;
Элемент управления ListBox (Рис. 22.14) используется для представления содержимого в виде упорядоченного списка. Это достаточно гибкий элемент управления, так что элементы списка могут создаваться из содержимого любого типа.
| Свойство | Тип | Описание |
|---|---|---|
ItemContainerStyle |
Style |
Возвращает или задает стиль, применяемый к элементу контейнера, сгенерированному для каждого элемента. |
SelectedIndex |
Int32 |
Возвращает или задает индекс первого элемента в текущем выбранном элементе или минус единицу (-1), если элемент не выбран. |
SelectedItem |
Object |
Возвращает или задает первый элемент или возвращает значение NULL, если элемент не выбран. |
SelectedValue |
Object |
Возвращает или задает значение SelectedItem, получаемое с помощью SelectedValuePath. |
SelectionMode |
SelectionMode |
Возвращает или задает поведение выбора для списка ListBox. (Принимает значения: Single если нужно выбрать один элемент, Multiple если пользователь выбирает несколько элементов из списка, Extended если пользователь выбирает несколько элементов из списка используя специальные клавиши, таки как Ctrl или Shift. |
(рис 22.14) Пример элемента управления ListBoxXAML код элемента ListBox представленного на Рис. 22.14:
<TextBlock FontWeight="Bold"> ListBox with Simple items (TextBlock) </TextBlock> <ListBox Canvas.Top="50" Canvas.Left="40" Width="200"> <ListBox.Items> <ListBoxItem> <TextBlock Text="Strategic Advisory"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Training"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Development"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Technical Publishing"/> </ListBoxItem> </ListBox. Items> </ListBox>
Элемент управления ComboBox (Поле со списком) используется для представления списка доступных для выбора элементов. При этом отображается только выбранный элемент, но имеется выпадающее меню с полным списком доступных для выбора элементов.
| Свойство | Тип | Описание |
|---|---|---|
IsEditable |
bool |
Возвращает или задает значение, разрешающее либо запрещающее редактировать текст в текстовом поле элемента управления ComboBox. |
ItemContainerStyle |
Style |
Возвращает или задает стиль, который применяется к контейнеру, создаваемому для каждого элемента поля со списком. |
SelectedIndex |
Int32 |
Возвращает или задает индекс, выбранного элемента. |
SelectedItem |
Object |
Возвращает или задает первый выбранный элемент. |
SelectedValue |
Object |
Возвращает или задает значение выбранного элемента, используя свойство SelectedValuePath (Новое свойство в Silverlight 4). |
(рис 22.15) Пример элемента управления ComboBoxXAML код элемента ComboBox представленного на Рис. 22.15:
<TextBlock FontWeight="Bold"> ComboBox with Simple items (TextBlock) </TextBlock> <ComboBox> <ComboBox.Items> <ComboBoxItem> <TextBlock Text="Strategic Advisory"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Training"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Development"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Technical Publishing"/> </ComboBoxItem> </ComboBox>
Элемент управления DataGrid разработан для облегчения задачи по отображению данных в формате таблицы. Это сетка данных, связанная с источником данных. Для работы с данным элементом необходимо подключить пространство имен System.Windows.Data и добавить в XAML код строчку:
xmlns:data="clrnamespace: System.Windows.Controls;assembly=System.Windows.Controls.Data"
(рис 22.16) Пример элемента управления DataGridXAML код элемента DataGrid представленного на Рис. 22.16:
<UserControl x:Class="chapter6.PagedCollectionViewDemo"
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"
xmlns:data="clr-namespace:System.Windows.Controls;
assembly=System.Windows.Controls.Data">
<Grid x:Name="LayoutRoot" Background="White"
Width="400" Height="300">
<data:DataGrid x:Name="myDataGrid" AutoGenerateColumns="False" >
<data:DataGrid.Columns>
<data:DataGridTextColumn Binding="{Binding Name}"
Header="Name" />
<data:DataGridTextColumn Binding="{Binding Email}"
Header="Email" />
<data:DataGridTextColumn Binding="{Binding City}"
Header="City" />
<data:DataGridTextColumn Binding="{Binding Pincode}"
Header="Pin Code" />
</data:DataGrid.Columns>
</data:DataGrid>
</Grid>
</UserControl>
Класс Employee:
public class Employee
{
public string Name { get; set; }
public string Email { get; set; }
public string City { get; set; }
public string State { get; set; }
public int Pincode { get; set; }
}
C# обработчик события PagedCollectionViewDemo_Loaded:
void PagedCollectionViewDemo_Loaded(object sender, RoutedEventArgs e)
{
Employee[] emps = new Employee[10];
emps[0] = new Employee();
emps[0].Name = "Ashish Ghoda";
emps[0].Email = "aghoda@TechnologyOpinion.com";
emps[0].City = "New Providence";
emps[0].Pincode = 07974;
emps[0].State = "New Jersey";
emps[1] = new Employee();
emps[1].Name = "Jay Nanavaty";
emps[1].Email = "jnanavaty@TechnologyOpinion.com";
emps[1].City = "Baroda";
emps[1].Pincode = 390023;
emps[1].State = "Gujarat";
emps[2] = new Employee();
emps[2].Name = "Kruti Vaishnav";
emps[2].Email = "kvaishnav@TechnologyOpinion.com";
emps[2].City = "Delhi";
emps[2].Pincode = 350025;
emps[2].State = "Delhi";
emps[3] = new Employee();
emps[3].Name = "Pratixa Ghoda";
emps[3].Email = "pghoda@TechnologyOpinion.com";
emps[3].City = "New Providence";
emps[3].Pincode = 07974;
emps[3].State = "New Jersey";
//PagedCollectionView
//Grouping
PagedCollectionView pgn = new PagedCollectionView(emps);
//Binding to the DataGrid
myDataGrid.ItemsSource = pgn;
}
Как видно из данного фрагмента кода список и он же источник данных создается вручную. В практическом занятии № 13 будет рассмотрено использование DataGrid с источником данных SQL Server 2008.
Элемент управления TextBlock используется в приложениях Silverlight для отображения текста. В самом простом случае, для отображения текст достаточно применить TextBlock с заданным свойством Text.
| Свойство | Тип | Описание |
|---|---|---|
FontFamily |
FontFamily |
Получает или задает семейство шрифтов для элемента TextBlock |
FontSize |
double |
Получает или задает размер шрифта элемента TextBlock |
FontStyle |
FontStyle |
Получает или задает стиль шрифтов элемента TextBlock. |
Padding |
Thickness |
Получает или задает значение внутренних полей в TextBlock |
Text |
string |
Получает или задает содержимое элемента TextBlock. |
TextWrapping |
TextWrapping |
Получает или задает способ обтекания текста элемента TextBlock. |
(рис 22.17) Пример элемента управления TextBlockXAML код элемента TextBlock представленного на Рис. 22.17:
<Border BorderBrush="Black" BorderThickness="1"
Canvas.Left="20" Canvas.Top="20">
<TextBlock Text="This is text that does not wrap"/>
</Border>
<Border BorderBrush="Black" BorderThickness="1"
Canvas.Left="20" Canvas.Top="60">
<TextBlock Text="This is text that wraps" TextWrapping="
Wrap" Width="100"/>
</Border>
<Border BorderBrush="Black" BorderThickness="1"
Canvas.Left="20" Canvas.Top="130">
<TextBlock>
<Run FontSize="20" Text="This"/>
<Run FontSize="20" FontStyle="Italic" Text="is "/>
<Run FontSize="20" Text="text within a single"/>
<LineBreak/>
<Run Foreground="Red" FontSize="14" Text="
TextBlock control."/>
</TextBlock>
Элемент управления Border используется только для отрисовки рамки, фона или того и другого вокруг элемента.
| Свойство | Тип | Описание |
|---|---|---|
Background |
Brush |
Получает или задает значение Brush, которое заполняет область между границами элемента Border. |
BorderBrush |
Brush |
Получает или задает значение Brush, которое определяет цвет внешней границы. |
BorderThickness |
Thickness |
Получает или задает толщину рамки элемента Border. |
CornerRadius |
CornerRadius |
Получает или задает значение, представляющее степень округления углов элемента Border. |
(рис 22.18) Пример элемента управления BorderXAML код элемента Border представленного на Рис. 22.18:
<Border BorderThickness="10" Width="100" Height="100"
CornerRadius="10">
<Border.BorderBrush>
<LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
<GradientStop Color="#FF000000" Offset="0"/>
<GradientStop Color="#FFFF0000" Offset="1"/>
</LinearGradientBrush>
</Border.BorderBrush>
<Button Content="BUTTON"/>
</Border>
Элемент управления Image используется для отображения изображений. Он может принимать форматы файлов .bmp, .jpg и .png. Путь к изображению задается свойством Source. Если фактические размеры изображения отличаются от заданных для элемента управления Image (т.е. если имеется элемент Image размером 100 ? 100 и в него загружается .jpg-изображение 2000 ? 2000 пикселов), управлять поведением отображения можно с помощью свойства Stretch. Оно может принимать следующие значения:
Fill Изменяет размеры изображения соответственно размерам области вывода, используя независимое масштабирование по осям х и у.Uniform Изменяет размеры изображения так, чтобы оно поместилось в элемент управления Image, но при этом сохраняет пропорции изображения.UniformToFill Изменяет размеры изображения так, чтобы оно полностью заполнило область вывода, обрезая его в случае необходимости.None Отображает изображение как есть, что приводит к его обрезке, если оно не помещается в элемент Image.
(рис 22.19) Значения свойства Strech
Одно из наиболее важных применений Silverlight в Веб – обеспечение поддержки мультимедиа следующего поколения, которое может воспроизводиться на разных платформах. Для этого Silverlight поддерживает элемент управления MediaElement.
Элемент управления MediaElement поддерживает следующие форматы:
Видео
Аудио
от 8 до 48 кГцот 8 до 320 Кбит/сКроме этих форматов, элемент управления MediaElement также поддерживает списки воспроизведения ASX и протоколы HTTP, HTTPS и MMS.
| Свойство | Тип | Описание |
|---|---|---|
AudioStreamCount |
int |
Возвращает число аудиопотоков медиа файла |
AudioStreamIndex |
int |
Возвращает индекс текущего аудио потока |
|
bool |
Если true (Значение по умолчанию) то проигрывание медиа файла начинается немедленно. Если false то проигрывание не начнется автоматически |
Balance |
double |
Возвращает или задает баланс громкости динамиков принимается значение от -1 до 1, значение 0 по умолчанию. |
CurrentState |
MediaElementState |
Возвращает текущее состояние проигрываемого медиа элемента ( Closed, Opening, Individualizing, AcquiringLicense,Buffering, Playing, Paused и Stopped ). |
DownloadProgress |
double |
Возвращает процентное значение, показывающее процент загрузки содержимого, расположенного на удаленном сервере. Принимает значение от 0 до 1 |
IsMuted |
bool |
Возвращает или задает значение, показывающее, выключен ли звук. |
Position |
TimeSpan |
Возвращает или задает прошедшее время воспроизведения файла мультимедиа. |
Source |
Uri |
Возвращает или задает источник для элемента MediaElement. |
Volume |
double |
Получает или задает громкость мультимедиа. Принимает значение от 0 до 1, значение по умолчанию 0,5 |
| Свойство | Описание |
|---|---|
Pause |
Приостанавливает воспроизведение файл мультимедиа в текущем положении. |
Play |
Воспроизводит файл мультимедиа с текущего положения. |
SetSource |
Устанавливает новый источник для MediaElement (Аналогичен свойству Source ) |
Stop |
Останавливает и возвращает воспроизведение файла мультимедиа на начало. |
На рис 11.20. изображен переход состояний медафайла при воспроизведении в зависимости от использованных свойств и методов.
(рис 22.20) Изменения состояния MediaElement
Элементы позиционирования, группировки или "Контейнеры" позволяют создавать структуру расположения элементов на форме проекта. Сочетания контейнеров и вложение их один в другой позволяет добиться определенного взаиморасположения и разбиения формы на определенные логические блоки. Так же без использования контейнеров нельзя расположить не один дочерний элемент управления.
К данным элементам относятся:
Canvas – наиболее часто используемый контейнер (Рис 22.1), представляет из себя прямоугольную форму. Имеет задаваемую высоту (Height) и ширину (Width). Может располагаться как на форме UserControl – а, так и в других контейнерах или на Canvas. Canvas – наиболее простой контейнер, который позволяет абсолютно располагать дочерние элементы.
(рис 22.1) Пример элемента управления CanvasXAML код элемента Canvas представленного на Рис. 22.1:
<UserControl x:Class="chapter3.CanvasDemo" 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= <ref src="http://schemas.openxmlformats.org/markupcompatibility/2006" type="url"/> mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Canvas x:Name="LayoutRoot"> <Button Canvas.Left="10" Canvas.Top="20" Content="Button at (10,20)"/> <TextBlock Text="Outer Canvas at (180,10)" Canvas.Left="180" Canvas.Top="10" FontSize="26"/> <Canvas Canvas.Top="60" Canvas.Left="10" Background="LightSkyBlue" Width="300" Height="100"> <TextBlock Text="Nested Canvas starts at (10,60)" Canvas.Left="0" Canvas.Top="0"/> <Button Canvas.Left="10" Canvas.Top="50" Content="Nested Canvas Button at (10,50)"/> </Canvas> </Canvas> </UserControl>
StackPanel – контейнер, который используется в случае, когда необходимо, чтобы дочерние элементы шли один за другим, например в виде списка или каких либо последовательно используемых элементов (Рис 22.2).
(рис 22.2) Пример элемента управления StackPanelXAML код элемента StackPanel представленного на Рис. 22.2:
<UserControl x:Class="chapter3.StackPanelDemo" 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" d:DesignHeight="300" d:DesignWidth="400"> <StackPanel x:Name="LayoutRoot" Background="White" Orientation="Vertical"> <TextBlock Margin="0,10" Text="Vertical and Horizontal (nested) oriented StackPanels Example"/> <StackPanel Background="LightSkyBlue" Orientation="Horizontal"> <TextBlock Text="Enter user id: "/> <TextBox Width="200" Height="20" VerticalAlignment="Top"/> </StackPanel> </StackPanel> </UserControl>
).
| Свойство | Тип | Описание |
|---|---|---|
Grid.Row |
Int 32 |
Возвращает или задает значение, указывающее, дочернее содержимое какой строки элемента управления Grid должно отобразиться. У первой строки индекс равен 0. Значение по умолчанию 0. |
Grid.Column |
Int 32 |
Возвращает или задает значение, указывающее столбец, в котором должно появиться дочернее содержимое объекта Grid У первого столбца индекс равен 0. Значение по умолчанию 0. |
Grid.RowSpan |
Int 32 |
Возвращает или задает значение, определяющее общее количество строк, которые заполняет дочернее содержимое в элементе управления Grid. Значение по умолчанию 1. |
Grid.ColumnSpan |
Int 32 |
Возвращает или задает значение, определяющее общее количество столбцов, которые заполняет дочернее содержимое в элементе управления Grid. Значение по умолчанию 1. |
На рис 11.3. наглядно показано как заполнятся содержание элемента управления Grid.
(рис 22.3) Пример элемента управления GridXAML код элемента Grid представленного на Рис. 22.3:
<UserControl x:Class="chapter3.GridDemo" 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" d:DesignHeight="300" d:DesignWidth="400" Height="300" Width="400"> <Grid x:Name="LayoutRoot" Background="White"> <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> </UserControl>
Элемент DockPanel - один из новых элементов-контейнеров который входит в Silverlight Toolkit и определяет область, в которой можно упорядочить дочерние элементы горизонтально или вертикально относительно друг друга. Для того что бы использовать этот элемент необходимо добавить ссылку (reference) Systems.Windows.Controls.dll, и добавить в XAML код строчку:
<UserControl x:Class="chapter3.DockPanelDemo" 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" xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="500">
На Рис. 22.4продемонстрировано два различных примера заполнения элемента DockPanel со свойством LastChildFill ( Свойство LastChildFill получает или задает значение, указывающее растягивается ли последний дочерний элемент в DockPanel с целью заполнения оставшегося доступного пространства) и значение true (значение по умолчанию true ).
(рис 22.4) Пример элемента управления DockPanel, значение свойства LastChildFill = trueXAML код DockPanel - "1" (Рис 22.4.):
<c:DockPanel Height="200" Width="200" Grid.Column="0" Grid.Row="1"> <Button c:DockPanel.Dock="Left" Content="Left"/> <Button c:DockPanel.Dock="Top" Content="Top"/> <Button c:DockPanel.Dock="Right" Content="Right"/> <Button c:DockPanel.Dock="Bottom" Content="Bottom"/> <Button c:DockPanel.Dock="Bottom" Content="Last Child"/> </c:DockPanel>
XAML код DockPanel - "2" (Рис 22.4.):
<c:DockPanel Height="200" Width="200" Grid.Column="1" Grid.Row="1"> <Button c:DockPanel.Dock="Top" Content="Top"/> <Button c:DockPanel.Dock="Bottom" Content="Bottom"/> <Button c:DockPanel.Dock="Left" Content="Left"/> <Button c:DockPanel.Dock="Right" Content="Right"/> <Button Content="Last Child"/> </c:DockPanel>
Для закрепления дочернего элемента в другом направлении необходимо установить для свойства LastChildFill значение false, а также указать явное направление закрепления для последнего дочернего элемента (рис 22.5.).
(рис 22.5) Пример элемента управления DockPanel, значение свойства LastChildFill = falseXAML код элемента DockPanel представленного на Рис. 22.5:
<c:DockPanel Height="200" Width="200" Grid.Column="2" Grid.Row="1" LastChildFill="False"> <Button c:DockPanel.Dock="Top" Content="Top"/> <Button c:DockPanel.Dock="Bottom" Content="Bottom"/> <Button c:DockPanel.Dock="Left" Content="Left"/> <Button c:DockPanel.Dock="Right" Content="Right"/> <Button c:DockPanel.Dock="Top" Content="Inner Top"/> <Button c:DockPanel.Dock="Bottom" Content="Inner Bottom"/> </c:DockPanel>
Элемент WrapPanel - один из новых элементов-контейнеров который входит в Silverlight Toolkit. Размещает дочерние элементы последовательно слева направо, разбивая содержимое до следующей строки. Последующее размещение происходит последовательно сверху вниз или справа налево, в зависимости от значения свойства Orientation. Для того что бы использовать этот элемент необходимо добавить ссылку (reference) Systems.Windows.Controls.dll, и добавить в XAML код строчку:
xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
| Свойство | Тип | Описание |
|---|---|---|
ItemHeight |
Double |
Получает или задает значение, указывающее высоту всех элементов, содержащихся внутри WrapPanel. |
ItemWidth |
Double |
Получает или задает значение, указывающее ширину всех элементов, содержащихся внутри WrapPanel. |
Orientation |
Orientation |
Получает или задает значение, указывающее размерность, с которой располагается дочернее содержимое (Принимает значения Horizontal или Vertical ) . |
(рис 22.6) Пример WrapPanelс горизонтальной ориентациейXAML код элемента WrapPanel представленного на Рис. 22.6:
<StackPanel> <TextBlock Text="Horizontally Oriented WrapPanel Example" Margin="5" FontWeight="Bold"/> <c:WrapPanel Width="500" Height="250" Orientation="Horizontal"> <Image Width="150" Height="100" Margin="2" Source="res/1.jpg"/> <Image Width="150" Height="100" Margin="2" Source="res/2.jpg"/> <Image Width="150" Height="100" Margin="2" Source="res/3.jpg"/> <Image Width="150" Height="100" Margin="2" Source="res/4.jpg"/> <Image Width="150" Height="100" Margin="2" Source="res/5.jpg"/> </c:WrapPanel> </StackPanel>
(рис 22.7) Пример WrapPanel с вертикальной ориентацией
Элемент TabControl (Рис 22.7.) - представляет элемент управления, содержащий несколько элементов, которые совместно используют одно пространство на экране. Объект TabControl можно использовать, чтобы сократить использование пространства экрана и в то же время сделать так, чтобы приложение отображало большой объем данных. Объект TabControl состоит из нескольких объектов TabItem, которые совместно используют одно пространство на экране. Одновременно отображается только один элемент TabItem из TabControl. Когда пользователь выбирает TabItem, то содержимое данного объекта TabItem становится видимым, а содержимое других объектов TabItem скрывается. Для использования необходимо использовать пространство имен System.Windows.Controls и добавить XAML код к странице где собирается использоваться данный элемент:
xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
| Свойство | Тип | Описание |
|---|---|---|
SelectedContent |
Object |
Возвращает содержимое текущего выбранного элемента TabItem |
SelectedIndex |
Int32 |
Возвращает или задает индекс первого элемента в текущем выделении или минус единицу (-1), если выделение является пустым. |
SelectedItem |
Object |
Получает или задает первый элемент в текущем выделении или возвращает значение NULL, если выделение является пустым. |
TabStripPlacement |
Dock |
Возвращает или задает способ выравнивания заголовков вкладок относительно содержимого вкладок. |
(рис 22.8) Пример элемента TabPanelXAML код элемента WrapPanel представленного на Рис. 22.8:
<UserControl x:Class="chapter3.TabControlDemo" 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" xmlns:c="clr-namespace:System.Windows.Controls; assembly=System.Windows.Controls" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Canvas x:Name="LayoutRoot" Background="White"> <c:TabControl Canvas.Left="20" Canvas.Top="40" Width="300" Height="200"> <c:TabItem Header="Tab #1"> <Canvas Background="Red"></Canvas> </c:TabItem> <c:TabItem Header="Tab #2"> <Canvas Background="Green"></Canvas> </c:TabItem> <c:TabItem Header="Tab #3"> <Canvas Background="Blue"></Canvas> </c:TabItem> </c:TabControl> </Canvas> </UserControl>
Пространство имен System.Windows включает ряд основных элементов управления, составляющих ядро каждого приложения Microsoft Silverlight.
К элементам управления формы относятся:
(рис 22.9) Кнопочные элементы управленияВ Silverlight кнопка реализуется с помощью элемента управления Button (Рис 22.9-1). Кнопка реагирует на ввод пользователя с таких устройств ввода, как мышь, клавиатура или стилус, формируя событие Click. XAML код простой кнопки:
<Button Canvas.Left="74" Canvas.Top="20" Width="100" Content="Press me!" x:Name="button" Click="Button_Click" />
С# код события Button_Click:
private void Button_Click(object sender, RoutedEventArgs e)
{
//Put your custom code here
}
HyperlinkButton (Рис 22.9 - 3) обеспечивает на странице элемент с возможностью щелчка по нему для перехода по URI, заданному свойством NavigateUri (Uri перехода). XAML код гиперссылки:
<HyperlinkButton x:Name="hyperlinkButton" Canvas.Left="45" Canvas.Top="20" Width="200" Content="Click to visit Silverlight website" NavigateUri="http://www.silverlight.net" TargetName="_blank"/>
Свойство TargetName определяет, где будет открываться содержимое, располагающееся по заданному URL. Для вывода на экран содержимого URL доступны следующие опции:
_blank Открывает новое окно браузера без имени._self Замещает текущую HTML-станицу новым содержимым. Если HTML-станица отображается во фрейме, замещается только содержимое рамки._top Замещает текущую HTML-станицу новым содержимым. Даже если HTML-станица отображается во фрейме, меняется содержимое всего окна браузера._parent Замещает всю HTML-станицу.Элемент управления RepeatButton (Рис 22.9 -2) генерирует событие Click периодически с момента его нажатия и до момента отпускания. XAML код RepeatButton:
<RepeatButton Canvas.Left="73" Canvas.Top="20" Width="110" Content="Press and hold" Click="RepeatButton_Click"/>
С# код события RepeatButton_Click:
private int currentValue = 0;
private void RepeatButton_Click(object sender, RoutedEventArgs e)
{
currentValue++;
repeatButtonValue.Text = currentValue.ToString();
}
| Свойство | Тип | Описание |
|---|---|---|
Delay |
Int32 |
Возвращает или задает время в миллисекундах, в течение которого RepeatButton ожидает нажатия, прежде чем начать повтор. Значение не должно быть отрицательным |
Interval |
Int32 |
Возвращает или задает время в миллисекундах между повторами. Значение не должно быть отрицательным. |
Элемент управления CheckBox (Рис 22.9 - 4) предоставляет пользователю опцию для выбора. Обычно он представляется в виде прямоугольника, в котором пользователь может установить или убрать флажок. Он используется, когда имеется ряд опций на выбор и можно выбрать несколько из них.
<CheckBox x:Name="checkBox1" Canvas.Left="25" Canvas.Top="20" IsChecked="True" Content="Checked"/> <CheckBox x:Name="checkBox2" Canvas.Left="25" Canvas.Top="40" IsChecked="False" Content="Unchecked"/> <CheckBox x:Name="checkBox3" Canvas.Left="25" Canvas.Top="60" IsChecked="" IsThreeState="True" Content="Indeterminate"/>
Элемент управления RadioButton (Рис 22.9 – 5), подобно CheckBox используется для фиксирования выбора пользователя. Однако отличается от CheckBox тем, что обычно применяется в ситуациях, когда пользователь должен выбрать единственный вариант из ряда предлагаемых опций.
<RadioButton x:Name="radioButton1" GroupName="group1" Canvas.Left="40" Canvas.Top="20" Content="Red"/> <RadioButton x:Name="radioButton2" GroupName="group1" Canvas.Left="40" Canvas.Top="40" Content="Green"/> <RadioButton x:Name="radioButton3" GroupName="group1" Canvas.Left="40" Canvas.Top="60" Content="Blue"/> <RadioButton x:Name="radioButton4" GroupName="group1" Canvas.Left="40" Canvas.Top="80" Content="Cyan"/>
Элемент управления TextBox (Рис 22.10) обеспечивает пользователям область для ввода текста. В самой простой форме TextBox предоставляет область, в которую пользователь может ввести одну строку текста. Ключевые свойства элемента управления TextBox представлены в таблице 11.5.
| Свойство | Тип | Описание |
|---|---|---|
AcceptsReturn |
bool |
Получает или задает значение, определяющее, разрешено ли в текстовом поле использование и отображение символов новой строки. |
BaselineOffset |
double |
Получает значение смещения каждой строки текста относительно направляющей. |
HorizontalScrollBarVisibility |
ScrollBarVisibility |
Получает или задает видимость горизонтальной полосы прокрутки. |
IsReadOnly |
bool |
Получает или задает значение, определяющее, разрешено ли пользователю изменять текст в текстовом поле. |
MaxLength |
Int32 |
Получает или задает значение, определяющее максимально разрешенное число символов пользовательского ввода. |
SelectedText |
string |
Получает или задает содержимое текущего выделенного фрагмента в текстовом поле. |
SelectionBackground |
Brush |
Получает или задает кисть, используемую для заливки фона выделенного текста. |
SelectionForeground |
Brush |
Получает или задает кисть, используемую для текста, выделенного в текстовом поле. |
SelectionLength |
Int32 |
Получает или задает число символов, выделенных в текущий момент в текстовом поле. |
SelectionStart |
Int32 |
Получает или задает начальную позицию текста, выделенного в текстовом поле. |
Text |
string |
Получает или задает текстовое содержимое текстового поля. |
TextAlignment |
TextAlignment |
Получает или задает режим выравнивания текста в текстовом поле. |
TextWrapping |
TextWrapping |
Получает или задает способ разрыва строки в случае выхода текста за пределы ширины текстового поля. |
VerticalScrollBarVisibility |
ScrollBarVisibility |
Получает или задает видимость вертикальной полосы прокрутки. |
(рис 22.10) Пример элемента управления TextBoxXAML код элемента управления TextBox представленного на Рис. 22.10:
<TextBox Canvas.Top="30" Canvas.Left="120" Width="200"/> <TextBox Canvas.Top="60" Canvas.Left="120" Height="150" Width="200" AcceptsReturn="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible"/>
Элемент управления PasswordBox (Рис 22.11) похож на TextBox элемент управления . PasswordBox во многих отношениях практически идентичен TextBox.
(рис 22.11) Пример элемента управления PasswordBoxXAML код элемента управления PasswordBox представленного на Рис 22.11:
<StackPanel x:Name="LayoutRoot" Background="White"> <TextBlock Margin="30,10,0,0" Text="Enter Password" FontWeight="bold"/> <PasswordBox x:Name="EnterPassword" Margin="30,10,0,0" PasswordChanged="EnterPassword_PasswordChanged" MaxLength="11" Height="25" Width="150" HorizontalAlignment="Left" /> <TextBlock Text="Display Entered Password" Margin="30,10,0,0" FontWeight="bold"/> <TextBox x:Name="DisplayPassword" Margin="30,10,0,0" HorizontalAlignment="Left" IsReadOnly="True" Height="25" Width="150" /> </StackPanel>
C# код события EnterPassword_PasswordChanged:
private void EnterPassword_PasswordChanged(object sender,
RoutedEventArgs e)
{
DisplayPassword.Text = EnterPassword.Password;
}
RichTextBox (Рис 22.12) - элемент управления редактированием форматированного текста, который поддерживает форматированный текст, гиперссылки, встроенные рисунки и прочее форматированное содержимое, можно использовать для отображения, ввода, форматирования и редактирования форматированного текста.
| Свойство | Тип | Описание |
|---|---|---|
AcceptsReturn |
bool |
Получает или задает значение, определяющее, разрешено ли в текстовом поле использование и отображение символов новой строки. |
BaselineOffset |
double |
Получает значение смещения каждой строки текста относительно направляющей. |
HorizontalScrollBarVisibility |
ScrollBarVisibility |
Получает или задает видимость горизонтальной полосы прокрутки. |
IsReadOnly |
bool |
Получает или задает значение, определяющее, разрешено ли пользователю изменять текст в текстовом поле. |
MaxLength |
Int32 |
Получает или задает значение, определяющее максимально разрешенное число символов пользовательского ввода. |
SelectedText |
string |
Получает или задает содержимое текущего выделенного фрагмента в текстовом поле. |
(рис 22.12) Пример элемента управления RichTextBoxXAML код элемента 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 (Рис 22.13) - элемент управления, который предоставляет текстовое поле для пользовательского ввода и раскрывающийся список, содержащий возможные совпадения с вводимыми в текстовое поле данными.
(рис 22.13) Пример элемента управления AutoCompleteBoxXAML код элемента 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;
Элемент управления ListBox (Рис. 22.14) используется для представления содержимого в виде упорядоченного списка. Это достаточно гибкий элемент управления, так что элементы списка могут создаваться из содержимого любого типа.
| Свойство | Тип | Описание |
|---|---|---|
ItemContainerStyle |
Style |
Возвращает или задает стиль, применяемый к элементу контейнера, сгенерированному для каждого элемента. |
SelectedIndex |
Int32 |
Возвращает или задает индекс первого элемента в текущем выбранном элементе или минус единицу (-1), если элемент не выбран. |
SelectedItem |
Object |
Возвращает или задает первый элемент или возвращает значение NULL, если элемент не выбран. |
SelectedValue |
Object |
Возвращает или задает значение SelectedItem, получаемое с помощью SelectedValuePath. |
SelectionMode |
SelectionMode |
Возвращает или задает поведение выбора для списка ListBox. (Принимает значения: Single если нужно выбрать один элемент, Multiple если пользователь выбирает несколько элементов из списка, Extended если пользователь выбирает несколько элементов из списка используя специальные клавиши, таки как Ctrl или Shift. |
(рис 22.14) Пример элемента управления ListBoxXAML код элемента ListBox представленного на Рис. 22.14:
<TextBlock FontWeight="Bold"> ListBox with Simple items (TextBlock) </TextBlock> <ListBox Canvas.Top="50" Canvas.Left="40" Width="200"> <ListBox.Items> <ListBoxItem> <TextBlock Text="Strategic Advisory"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Training"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Development"/> </ListBoxItem> <ListBoxItem> <TextBlock Text="Technical Publishing"/> </ListBoxItem> </ListBox. Items> </ListBox>
Элемент управления ComboBox (Поле со списком) используется для представления списка доступных для выбора элементов. При этом отображается только выбранный элемент, но имеется выпадающее меню с полным списком доступных для выбора элементов.
| Свойство | Тип | Описание |
|---|---|---|
IsEditable |
bool |
Возвращает или задает значение, разрешающее либо запрещающее редактировать текст в текстовом поле элемента управления ComboBox. |
ItemContainerStyle |
Style |
Возвращает или задает стиль, который применяется к контейнеру, создаваемому для каждого элемента поля со списком. |
SelectedIndex |
Int32 |
Возвращает или задает индекс, выбранного элемента. |
SelectedItem |
Object |
Возвращает или задает первый выбранный элемент. |
SelectedValue |
Object |
Возвращает или задает значение выбранного элемента, используя свойство SelectedValuePath (Новое свойство в Silverlight 4). |
(рис 22.15) Пример элемента управления ComboBoxXAML код элемента ComboBox представленного на Рис. 22.15:
<TextBlock FontWeight="Bold"> ComboBox with Simple items (TextBlock) </TextBlock> <ComboBox> <ComboBox.Items> <ComboBoxItem> <TextBlock Text="Strategic Advisory"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Training"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Development"/> </ComboBoxItem> <ComboBoxItem> <TextBlock Text="Technical Publishing"/> </ComboBoxItem> </ComboBox>
Элемент управления DataGrid разработан для облегчения задачи по отображению данных в формате таблицы. Это сетка данных, связанная с источником данных. Для работы с данным элементом необходимо подключить пространство имен System.Windows.Data и добавить в XAML код строчку:
xmlns:data="clrnamespace: System.Windows.Controls;assembly=System.Windows.Controls.Data"
(рис 22.16) Пример элемента управления DataGridXAML код элемента DataGrid представленного на Рис. 22.16:
<UserControl x:Class="chapter6.PagedCollectionViewDemo"
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"
xmlns:data="clr-namespace:System.Windows.Controls;
assembly=System.Windows.Controls.Data">
<Grid x:Name="LayoutRoot" Background="White"
Width="400" Height="300">
<data:DataGrid x:Name="myDataGrid" AutoGenerateColumns="False" >
<data:DataGrid.Columns>
<data:DataGridTextColumn Binding="{Binding Name}"
Header="Name" />
<data:DataGridTextColumn Binding="{Binding Email}"
Header="Email" />
<data:DataGridTextColumn Binding="{Binding City}"
Header="City" />
<data:DataGridTextColumn Binding="{Binding Pincode}"
Header="Pin Code" />
</data:DataGrid.Columns>
</data:DataGrid>
</Grid>
</UserControl>
Класс Employee:
public class Employee
{
public string Name { get; set; }
public string Email { get; set; }
public string City { get; set; }
public string State { get; set; }
public int Pincode { get; set; }
}
C# обработчик события PagedCollectionViewDemo_Loaded:
void PagedCollectionViewDemo_Loaded(object sender, RoutedEventArgs e)
{
Employee[] emps = new Employee[10];
emps[0] = new Employee();
emps[0].Name = "Ashish Ghoda";
emps[0].Email = "aghoda@TechnologyOpinion.com";
emps[0].City = "New Providence";
emps[0].Pincode = 07974;
emps[0].State = "New Jersey";
emps[1] = new Employee();
emps[1].Name = "Jay Nanavaty";
emps[1].Email = "jnanavaty@TechnologyOpinion.com";
emps[1].City = "Baroda";
emps[1].Pincode = 390023;
emps[1].State = "Gujarat";
emps[2] = new Employee();
emps[2].Name = "Kruti Vaishnav";
emps[2].Email = "kvaishnav@TechnologyOpinion.com";
emps[2].City = "Delhi";
emps[2].Pincode = 350025;
emps[2].State = "Delhi";
emps[3] = new Employee();
emps[3].Name = "Pratixa Ghoda";
emps[3].Email = "pghoda@TechnologyOpinion.com";
emps[3].City = "New Providence";
emps[3].Pincode = 07974;
emps[3].State = "New Jersey";
//PagedCollectionView
//Grouping
PagedCollectionView pgn = new PagedCollectionView(emps);
//Binding to the DataGrid
myDataGrid.ItemsSource = pgn;
}
Как видно из данного фрагмента кода список и он же источник данных создается вручную. В практическом занятии № 13 будет рассмотрено использование DataGrid с источником данных SQL Server 2008.
Элемент управления TextBlock используется в приложениях Silverlight для отображения текста. В самом простом случае, для отображения текст достаточно применить TextBlock с заданным свойством Text.
| Свойство | Тип | Описание |
|---|---|---|
FontFamily |
FontFamily |
Получает или задает семейство шрифтов для элемента TextBlock |
FontSize |
double |
Получает или задает размер шрифта элемента TextBlock |
FontStyle |
FontStyle |
Получает или задает стиль шрифтов элемента TextBlock. |
Padding |
Thickness |
Получает или задает значение внутренних полей в TextBlock |
Text |
string |
Получает или задает содержимое элемента TextBlock. |
TextWrapping |
TextWrapping |
Получает или задает способ обтекания текста элемента TextBlock. |
(рис 22.17) Пример элемента управления TextBlockXAML код элемента TextBlock представленного на Рис. 22.17:
<Border BorderBrush="Black" BorderThickness="1"
Canvas.Left="20" Canvas.Top="20">
<TextBlock Text="This is text that does not wrap"/>
</Border>
<Border BorderBrush="Black" BorderThickness="1"
Canvas.Left="20" Canvas.Top="60">
<TextBlock Text="This is text that wraps" TextWrapping="
Wrap" Width="100"/>
</Border>
<Border BorderBrush="Black" BorderThickness="1"
Canvas.Left="20" Canvas.Top="130">
<TextBlock>
<Run FontSize="20" Text="This"/>
<Run FontSize="20" FontStyle="Italic" Text="is "/>
<Run FontSize="20" Text="text within a single"/>
<LineBreak/>
<Run Foreground="Red" FontSize="14" Text="
TextBlock control."/>
</TextBlock>
Элемент управления Border используется только для отрисовки рамки, фона или того и другого вокруг элемента.
| Свойство | Тип | Описание |
|---|---|---|
Background |
Brush |
Получает или задает значение Brush, которое заполняет область между границами элемента Border. |
BorderBrush |
Brush |
Получает или задает значение Brush, которое определяет цвет внешней границы. |
BorderThickness |
Thickness |
Получает или задает толщину рамки элемента Border. |
CornerRadius |
CornerRadius |
Получает или задает значение, представляющее степень округления углов элемента Border. |
(рис 22.18) Пример элемента управления BorderXAML код элемента Border представленного на Рис. 22.18:
<Border BorderThickness="10" Width="100" Height="100"
CornerRadius="10">
<Border.BorderBrush>
<LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
<GradientStop Color="#FF000000" Offset="0"/>
<GradientStop Color="#FFFF0000" Offset="1"/>
</LinearGradientBrush>
</Border.BorderBrush>
<Button Content="BUTTON"/>
</Border>
Элемент управления Image используется для отображения изображений. Он может принимать форматы файлов .bmp, .jpg и .png. Путь к изображению задается свойством Source. Если фактические размеры изображения отличаются от заданных для элемента управления Image (т.е. если имеется элемент Image размером 100 ? 100 и в него загружается .jpg-изображение 2000 ? 2000 пикселов), управлять поведением отображения можно с помощью свойства Stretch. Оно может принимать следующие значения:
Fill Изменяет размеры изображения соответственно размерам области вывода, используя независимое масштабирование по осям х и у.Uniform Изменяет размеры изображения так, чтобы оно поместилось в элемент управления Image, но при этом сохраняет пропорции изображения.UniformToFill Изменяет размеры изображения так, чтобы оно полностью заполнило область вывода, обрезая его в случае необходимости.None Отображает изображение как есть, что приводит к его обрезке, если оно не помещается в элемент Image.
(рис 22.19) Значения свойства Strech
Одно из наиболее важных применений Silverlight в Веб – обеспечение поддержки мультимедиа следующего поколения, которое может воспроизводиться на разных платформах. Для этого Silverlight поддерживает элемент управления MediaElement.
Элемент управления MediaElement поддерживает следующие форматы:
Видео
Аудио
от 8 до 48 кГцот 8 до 320 Кбит/сКроме этих форматов, элемент управления MediaElement также поддерживает списки воспроизведения ASX и протоколы HTTP, HTTPS и MMS.
| Свойство | Тип | Описание |
|---|---|---|
AudioStreamCount |
int |
Возвращает число аудиопотоков медиа файла |
AudioStreamIndex |
int |
Возвращает индекс текущего аудио потока |
|
bool |
Если true (Значение по умолчанию) то проигрывание медиа файла начинается немедленно. Если false то проигрывание не начнется автоматически |
Balance |
double |
Возвращает или задает баланс громкости динамиков принимается значение от -1 до 1, значение 0 по умолчанию. |
CurrentState |
MediaElementState |
Возвращает текущее состояние проигрываемого медиа элемента ( Closed, Opening, Individualizing, AcquiringLicense,Buffering, Playing, Paused и Stopped ). |
DownloadProgress |
double |
Возвращает процентное значение, показывающее процент загрузки содержимого, расположенного на удаленном сервере. Принимает значение от 0 до 1 |
IsMuted |
bool |
Возвращает или задает значение, показывающее, выключен ли звук. |
Position |
TimeSpan |
Возвращает или задает прошедшее время воспроизведения файла мультимедиа. |
Source |
Uri |
Возвращает или задает источник для элемента MediaElement. |
Volume |
double |
Получает или задает громкость мультимедиа. Принимает значение от 0 до 1, значение по умолчанию 0,5 |
| Свойство | Описание |
|---|---|
Pause |
Приостанавливает воспроизведение файл мультимедиа в текущем положении. |
Play |
Воспроизводит файл мультимедиа с текущего положения. |
SetSource |
Устанавливает новый источник для MediaElement (Аналогичен свойству Source ) |
Stop |
Останавливает и возвращает воспроизведение файла мультимедиа на начало. |
На рис 11.20. изображен переход состояний медафайла при воспроизведении в зависимости от использованных свойств и методов.
(рис 22.20) Изменения состояния MediaElement
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.