Интерфейс приложения WinRT
В соответствии с вариантом задания разработать пользовательский интерфейс.
Выполнить проектирование сценариев диалога и построить граф диалога. Выполнить кодирование приложения.
Формирование навыков разработки пользовательских интерфейсов с использованием технологии WinRT.
На первом этапе проанализируйте свой вариант задания и подготовьте макеты, которые демонстрируют основные варианты использования приложения с точки зрения просмотра данных и навигации.
На первом макете может быть изображена плитка, которая должна содержать фирменную символику приложения (Рис. 13.1). Оцените целесообразность использования динамической или статической плитки. Выберите вид (квадратная, прямоугольная) и содержание плитки (текст и/или изображение).
(рис 13.1)
Подготовьте макет экрана заставки, который должен содержать идею приложения и состоит из изображения и цвета фона (Рис. 13.2).
(рис 13.2) Пример экрана заставки
Наибольшее внимание уделите содержимому домашней страницы приложения, которое должно ясно показывать, для чего предназначено приложение (Рис. 13.3).
(рис 13.3) Пример домашней страницы
На втором этапе реализуйте придуманные макеты средствами языка XAML. Например, для создания границ для заголовков и меню используют следующие команды:
<Border x:Name="TopBorder" BorderBrush="#FF08519E" BorderThickness="2" HorizontalAlignment="Left" Height="3" Margin="0,150,0,0" VerticalAlignment="Top" Width="281"/>
Программирование элементов управления
В соответствии с ваpиантом pазpаботать пpогpамму, содержащую указанные элементы управления
Изучить использование необходимых элементов управления. Выполнить кодирование приложения.
Формирование навыков использования элементов управления приложений WinRT.
В соответствии с разработанным макетом домашней страницы создайте разметку и задайте управляющие действия для кнопок средствами языка XAML.
Существует три типа элементов управления кнопками: "Отправить", "Сбросить" и "Обычная".
Используйте кнопку "Отправить", чтобы передать пользовательский ввод на сервер или выполнить действие, например, нажать кнопку "Далее", которая сохраняет данные формы и выполняет переход на следующую страницу приложения.
Для очистки формы или пользовательского ввода на странице используйте кнопку "Сбросить".
Для вызова действия используйте обычную кнопку.
Внутри формы первая кнопка без атрибутов выполняет функции отправки. Если требуется обычный тип, задайте для атрибута type значение "button".
Следуйте следующим рекомендациям:
Пример создания действия кнопки:
<Button x:Name="Kafedras" Content="Кафедры" HorizontalAlignment="Left" Margin="10,70,0,0" Grid.Row="1" VerticalAlignment="Top" Width="400" Height="60" FontWeight="Bold" BorderBrush="#DE6C81B9" Foreground="#DE6C81B9" FontSize="22" />
Программирование ввода/вывода приложений WinRT
Для указанного варианта разработать программу, моделирующую работу системы управления вводом-выводом.
Изучить систему управления вводом-выводом. Изучить структуры данных, используемые системой. Отладить и оттестировать составленную программу
Формирование навыков разработки системы ввода/вывода в приложениях WinRT
На основе макета приложения и добавленных элементов управления реализуйте заполнение приложения необходимой информацией.
Пример создания текстовых полей для ввода / вывода информации:
<TextBlock x:Name="NotificationBox" HorizontalAlignment="Left" Margin="350,130,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="28" Width="600" Foreground="#FF08519E" FontFamily="Assets/Play-Regular.ttf#Play" FontSize="16" Visibility="Collapsed"/>
Пример создания простейшей галереи изображений:
<FlipView x:Name="TambovView" HorizontalAlignment="Left"
Margin="616,195,0,0" VerticalAlignment="Top" Width="500"
Height="333" Visibility="Collapsed">
<Image Source="Assets/1.jpeg" />
<Image Source="Assets/2.jpeg" />
<Image Source="Assets/3.jpeg" />
<Image Source="Assets/4.jpeg" />
<Image Source="Assets/5.jpeg" />
</FlipView>
Теперь рассмотрим непосредственно процесс хранения и загрузки заметок. В качестве базы данных будет использоваться xml файл, доступ к которому будет осуществляться с использованием библиотеки Linq. В xml файле будет один основной элемент noties - так называемый Root элемент. Внутри него будут располагаться элементы messadges с двумя основными свойствами - name (будет отображать принадлежность к конкретной странице) и value (будет содержать в себе текст заметки).
При этом, когда пользователь нажмет на соответствующую кнопку - должна произойти загрузка содержимого заметки в текстовое поле.
Рассмотрим функцию, которая получает и записывает в текстовое поле значение заметки.
private void searchText(string name_of_search)
{
ResultBox.Text = "";
ResultBox.SelectionStart = 0;
string fileName = "Assets/Data.xml";
XDocument doc = XDocument.Load(fileName);
IEnumerable<XElement> content = doc.Root.Elements("messadge").Where(t => t.Attribute("name")
.Value == name_of_search).ToList();
string result = "";
foreach (XElement values in content)
result += values.Attribute("value").Value.ToString();
List<string> newList = null;
char separator = '|';
newList = result.Split(separator).ToList();
for (int i = 0; i < newList.Count; i++)
ResultBox.Text += " " + newList[i] + Environment.NewLine + Environment.NewLine;
}
Рассмотрим данную функцию подробнее:
name_of_search - содержит в тебе ключевое слово для заметки. Т.е. передача в качестве параметра функции значения "managment.rektor" позволит загрузить содержимое заметки о ректоре ТГТУ.
ResultBox.Text = ""; - обнуление текстового поля.
ResultBox.SelectionStart = 0; - указываем первоначальное положение курсора и полос прокрутки.
string fileName = "Assets/Data.xml"; - определяем имя файла, содержащего данные.
XDocument doc = XDocument.Load(fileName); - загрузка текущего документа.
IEnumerable<XElement> content = doc.Root.Elements("messadge").Where(t => t.Attribute("name").Value == name_of_search).ToList(); - основная строка в данном приложении. С ее использованием осуществляется поиск заметки, атрибут name которой совпадает со значением, переданным пользователем. Затем происходит формирования списка со всеми возможными результатами поиска.
foreach (XElement values in content) result += values.Attribute("value").Value.ToString(); - осуществляется проход по всем существующим (найденным) элементам, полученным в результате поиска и получение значение заметки.
Работа с файлами.
Для указанного ваpианта pазpаботать пpогpамму, работающую с файловой системой.
Изучить систему использования информации из файлов. Отладить и оттестировать составленное приложение
Формирование навыков разработки приложений WinRT
Проанализируйте задание и определите необходимые файлы для своего приложения.
Определите разметку документа, например
<Window x:Class="WorkWithFiles.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="313" Width="345">
<Grid>
<TextBox Height="23" HorizontalAlignment="Left" Margin="12,12,0,0"
Name="textBox1" VerticalAlignment="Top" Width="302" Text="D:\File.txt" />
<Button Content="Создать файл" Height="23" HorizontalAlignment="Left"
Margin="12,41,0,0" Name="Create" VerticalAlignment="Top" Width="302" Click="Create_Click" />
<Button Content="Удалить файл" Height="23" HorizontalAlignment="Left"
Margin="12,70,0,0" Name="Delete" VerticalAlignment="Top" Width="302" Click="Delete_Click" />
<Button Content="Простое построчное считывание" Height="23"
HorizontalAlignment="Left" Margin="12,128,0,0" Name="ReadLines"
VerticalAlignment="Top" Width="302" Click="ReadLines_Click" />
<Button Content="Копирование файла" Height="23" HorizontalAlignment="Left"
Margin="12,99,0,0" Name="CopyFile" VerticalAlignment="Top" Width="302"
Click="CopyFile_Click" />
<Button Content="Получить все txt файлы в директории" Height="23"
HorizontalAlignment="Left" Margin="12,157,0,0" Name="GetFiles"
VerticalAlignment="Top" Width="302" Click="GetFiles_Click" />
<Button Content="Запись в файл" Height="23" HorizontalAlignment="
Left" Margin="12,186,0,0" Name="Write" VerticalAlignment="Top"
Width="302" Click="Write_Click" />
<Button Content="Удалить все файлы из папки" Height="23"
HorizontalAlignment="Left" Margin="12,215,0,0" Name="DeleteAll"
VerticalAlignment="Top" Width="302" Click="DeleteAll_Click" />
<Button Content="Получить всю информацию о файле" Height="23"
HorizontalAlignment="Left" Margin="9,244,0,0" Name="GetAllInformation"
VerticalAlignment="Top" Width="302" Click="GetAllInformation_Click" />
</Grid>
</Window>
Определите операции, необходимые для работы с файлами с файлами разрабатываемого приложения. Примеры реализации работы с файлами:
private void Create_Click(object sender, RoutedEventArgs e)
{
if (!System.IO.File.Exists(this.textBox1.Text))
try
{
System.IO.File.Create(this.textBox1.Text);
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message, "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
else
MessageBox.Show("Файл уже существует", "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Stop);
}
private void Delete_Click(object sender, RoutedEventArgs e)
{
if (System.IO.File.Exists(this.textBox1.Text))
try
{
System.IO.File.Delete(this.textBox1.Text);
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
else
MessageBox.Show("Файл не существует", "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Stop);
}
private void ReadLines_Click(object sender, RoutedEventArgs e)
{
// Считать файл можно сразу же, как одну строку
try
{
string text = System.IO.File.ReadAllText(this.textBox1.Text);
MessageBox.Show(text, "Полученный текст", MessageBoxButton.OK,
MessageBoxImage.Exclamation);
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
*/ - возможны и другие способы чтения содержимого файла.
private void CopyFile_Click(object sender, RoutedEventArgs e)
{
string sourcePathFile = this.textBox1.Text; // Какой файл копируем
string targetPathFile = @"D:\1.txt"; // Куда будем копировать
if (System.IO.File.Exists(this.textBox1.Text))
try
{
System.IO.File.Copy(sourcePathFile, targetPathFile, true);
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
else
MessageBox.Show("Файл не существует", "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Stop);
}
private void Write_Click(object sender, RoutedEventArgs e)
{
string[] lines = { "Раз", "Два", "Четыре" };
try
{
System.IO.File.WriteAllLines(this.textBox1.Text, lines);
}
catch (DirectoryNotFoundException dirNotFound)
{
MessageBox.Show(dirNotFound.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
}Интерфейс приложения WinRT
В соответствии с вариантом задания разработать пользовательский интерфейс.
Выполнить проектирование сценариев диалога и построить граф диалога. Выполнить кодирование приложения.
Формирование навыков разработки пользовательских интерфейсов с использованием технологии WinRT.
На первом этапе проанализируйте свой вариант задания и подготовьте макеты, которые демонстрируют основные варианты использования приложения с точки зрения просмотра данных и навигации.
На первом макете может быть изображена плитка, которая должна содержать фирменную символику приложения (Рис. 13.1). Оцените целесообразность использования динамической или статической плитки. Выберите вид (квадратная, прямоугольная) и содержание плитки (текст и/или изображение).
(рис 13.1)
Подготовьте макет экрана заставки, который должен содержать идею приложения и состоит из изображения и цвета фона (Рис. 13.2).
(рис 13.2) Пример экрана заставки
Наибольшее внимание уделите содержимому домашней страницы приложения, которое должно ясно показывать, для чего предназначено приложение (Рис. 13.3).
(рис 13.3) Пример домашней страницы
На втором этапе реализуйте придуманные макеты средствами языка XAML. Например, для создания границ для заголовков и меню используют следующие команды:
<Border x:Name="TopBorder" BorderBrush="#FF08519E" BorderThickness="2" HorizontalAlignment="Left" Height="3" Margin="0,150,0,0" VerticalAlignment="Top" Width="281"/>
Программирование элементов управления
В соответствии с ваpиантом pазpаботать пpогpамму, содержащую указанные элементы управления
Изучить использование необходимых элементов управления. Выполнить кодирование приложения.
Формирование навыков использования элементов управления приложений WinRT.
В соответствии с разработанным макетом домашней страницы создайте разметку и задайте управляющие действия для кнопок средствами языка XAML.
Существует три типа элементов управления кнопками: "Отправить", "Сбросить" и "Обычная".
Используйте кнопку "Отправить", чтобы передать пользовательский ввод на сервер или выполнить действие, например, нажать кнопку "Далее", которая сохраняет данные формы и выполняет переход на следующую страницу приложения.
Для очистки формы или пользовательского ввода на странице используйте кнопку "Сбросить".
Для вызова действия используйте обычную кнопку.
Внутри формы первая кнопка без атрибутов выполняет функции отправки. Если требуется обычный тип, задайте для атрибута type значение "button".
Следуйте следующим рекомендациям:
Пример создания действия кнопки:
<Button x:Name="Kafedras" Content="Кафедры" HorizontalAlignment="Left" Margin="10,70,0,0" Grid.Row="1" VerticalAlignment="Top" Width="400" Height="60" FontWeight="Bold" BorderBrush="#DE6C81B9" Foreground="#DE6C81B9" FontSize="22" />
Программирование ввода/вывода приложений WinRT
Для указанного варианта разработать программу, моделирующую работу системы управления вводом-выводом.
Изучить систему управления вводом-выводом. Изучить структуры данных, используемые системой. Отладить и оттестировать составленную программу
Формирование навыков разработки системы ввода/вывода в приложениях WinRT
На основе макета приложения и добавленных элементов управления реализуйте заполнение приложения необходимой информацией.
Пример создания текстовых полей для ввода / вывода информации:
<TextBlock x:Name="NotificationBox" HorizontalAlignment="Left" Margin="350,130,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="28" Width="600" Foreground="#FF08519E" FontFamily="Assets/Play-Regular.ttf#Play" FontSize="16" Visibility="Collapsed"/>
Пример создания простейшей галереи изображений:
<FlipView x:Name="TambovView" HorizontalAlignment="Left"
Margin="616,195,0,0" VerticalAlignment="Top" Width="500"
Height="333" Visibility="Collapsed">
<Image Source="Assets/1.jpeg" />
<Image Source="Assets/2.jpeg" />
<Image Source="Assets/3.jpeg" />
<Image Source="Assets/4.jpeg" />
<Image Source="Assets/5.jpeg" />
</FlipView>
Теперь рассмотрим непосредственно процесс хранения и загрузки заметок. В качестве базы данных будет использоваться xml файл, доступ к которому будет осуществляться с использованием библиотеки Linq. В xml файле будет один основной элемент noties - так называемый Root элемент. Внутри него будут располагаться элементы messadges с двумя основными свойствами - name (будет отображать принадлежность к конкретной странице) и value (будет содержать в себе текст заметки).
При этом, когда пользователь нажмет на соответствующую кнопку - должна произойти загрузка содержимого заметки в текстовое поле.
Рассмотрим функцию, которая получает и записывает в текстовое поле значение заметки.
private void searchText(string name_of_search)
{
ResultBox.Text = "";
ResultBox.SelectionStart = 0;
string fileName = "Assets/Data.xml";
XDocument doc = XDocument.Load(fileName);
IEnumerable<XElement> content = doc.Root.Elements("messadge").Where(t => t.Attribute("name")
.Value == name_of_search).ToList();
string result = "";
foreach (XElement values in content)
result += values.Attribute("value").Value.ToString();
List<string> newList = null;
char separator = '|';
newList = result.Split(separator).ToList();
for (int i = 0; i < newList.Count; i++)
ResultBox.Text += " " + newList[i] + Environment.NewLine + Environment.NewLine;
}
Рассмотрим данную функцию подробнее:
name_of_search - содержит в тебе ключевое слово для заметки. Т.е. передача в качестве параметра функции значения "managment.rektor" позволит загрузить содержимое заметки о ректоре ТГТУ.
ResultBox.Text = ""; - обнуление текстового поля.
ResultBox.SelectionStart = 0; - указываем первоначальное положение курсора и полос прокрутки.
string fileName = "Assets/Data.xml"; - определяем имя файла, содержащего данные.
XDocument doc = XDocument.Load(fileName); - загрузка текущего документа.
IEnumerable<XElement> content = doc.Root.Elements("messadge").Where(t => t.Attribute("name").Value == name_of_search).ToList(); - основная строка в данном приложении. С ее использованием осуществляется поиск заметки, атрибут name которой совпадает со значением, переданным пользователем. Затем происходит формирования списка со всеми возможными результатами поиска.
foreach (XElement values in content) result += values.Attribute("value").Value.ToString(); - осуществляется проход по всем существующим (найденным) элементам, полученным в результате поиска и получение значение заметки.
Работа с файлами.
Для указанного ваpианта pазpаботать пpогpамму, работающую с файловой системой.
Изучить систему использования информации из файлов. Отладить и оттестировать составленное приложение
Формирование навыков разработки приложений WinRT
Проанализируйте задание и определите необходимые файлы для своего приложения.
Определите разметку документа, например
<Window x:Class="WorkWithFiles.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="313" Width="345">
<Grid>
<TextBox Height="23" HorizontalAlignment="Left" Margin="12,12,0,0"
Name="textBox1" VerticalAlignment="Top" Width="302" Text="D:\File.txt" />
<Button Content="Создать файл" Height="23" HorizontalAlignment="Left"
Margin="12,41,0,0" Name="Create" VerticalAlignment="Top" Width="302" Click="Create_Click" />
<Button Content="Удалить файл" Height="23" HorizontalAlignment="Left"
Margin="12,70,0,0" Name="Delete" VerticalAlignment="Top" Width="302" Click="Delete_Click" />
<Button Content="Простое построчное считывание" Height="23"
HorizontalAlignment="Left" Margin="12,128,0,0" Name="ReadLines"
VerticalAlignment="Top" Width="302" Click="ReadLines_Click" />
<Button Content="Копирование файла" Height="23" HorizontalAlignment="Left"
Margin="12,99,0,0" Name="CopyFile" VerticalAlignment="Top" Width="302"
Click="CopyFile_Click" />
<Button Content="Получить все txt файлы в директории" Height="23"
HorizontalAlignment="Left" Margin="12,157,0,0" Name="GetFiles"
VerticalAlignment="Top" Width="302" Click="GetFiles_Click" />
<Button Content="Запись в файл" Height="23" HorizontalAlignment="
Left" Margin="12,186,0,0" Name="Write" VerticalAlignment="Top"
Width="302" Click="Write_Click" />
<Button Content="Удалить все файлы из папки" Height="23"
HorizontalAlignment="Left" Margin="12,215,0,0" Name="DeleteAll"
VerticalAlignment="Top" Width="302" Click="DeleteAll_Click" />
<Button Content="Получить всю информацию о файле" Height="23"
HorizontalAlignment="Left" Margin="9,244,0,0" Name="GetAllInformation"
VerticalAlignment="Top" Width="302" Click="GetAllInformation_Click" />
</Grid>
</Window>
Определите операции, необходимые для работы с файлами с файлами разрабатываемого приложения. Примеры реализации работы с файлами:
private void Create_Click(object sender, RoutedEventArgs e)
{
if (!System.IO.File.Exists(this.textBox1.Text))
try
{
System.IO.File.Create(this.textBox1.Text);
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message, "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
else
MessageBox.Show("Файл уже существует", "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Stop);
}
private void Delete_Click(object sender, RoutedEventArgs e)
{
if (System.IO.File.Exists(this.textBox1.Text))
try
{
System.IO.File.Delete(this.textBox1.Text);
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
else
MessageBox.Show("Файл не существует", "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Stop);
}
private void ReadLines_Click(object sender, RoutedEventArgs e)
{
// Считать файл можно сразу же, как одну строку
try
{
string text = System.IO.File.ReadAllText(this.textBox1.Text);
MessageBox.Show(text, "Полученный текст", MessageBoxButton.OK,
MessageBoxImage.Exclamation);
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
*/ - возможны и другие способы чтения содержимого файла.
private void CopyFile_Click(object sender, RoutedEventArgs e)
{
string sourcePathFile = this.textBox1.Text; // Какой файл копируем
string targetPathFile = @"D:\1.txt"; // Куда будем копировать
if (System.IO.File.Exists(this.textBox1.Text))
try
{
System.IO.File.Copy(sourcePathFile, targetPathFile, true);
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
return;
}
else
MessageBox.Show("Файл не существует", "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Stop);
}
private void Write_Click(object sender, RoutedEventArgs e)
{
string[] lines = { "Раз", "Два", "Четыре" };
try
{
System.IO.File.WriteAllLines(this.textBox1.Text, lines);
}
catch (DirectoryNotFoundException dirNotFound)
{
MessageBox.Show(dirNotFound.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
}Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.