Опубликован: 22.12.2012 | Доступ: свободный | Студентов: 480 / 19 | Длительность: 07:20:00
Лекция 14:

Лабораторная работа

< Лекция 13 || Лекция 14: 1234 || Лекция 15 >

Лабораторная работа №3

Тема

Программирование ввода/вывода приложений 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;
}

Рассмотрим данную функцию подробнее:

  1. name_of_search - содержит в тебе ключевое слово для заметки. Т.е. передача в качестве параметра функции значения "managment.rektor" позволит загрузить содержимое заметки о ректоре ТГТУ.
  2. ResultBox.Text = ""; - обнуление текстового поля.
  3. ResultBox.SelectionStart = 0; - указываем первоначальное положение курсора и полос прокрутки.
  4. string fileName = "Assets/Data.xml"; - определяем имя файла, содержащего данные.
  5. XDocument doc = XDocument.Load(fileName); - загрузка текущего документа.
  6. IEnumerable<XElement> content = doc.Root.Elements("messadge").Where(t => t.Attribute("name").Value == name_of_search).ToList(); - основная строка в данном приложении. С ее использованием осуществляется поиск заметки, атрибут name которой совпадает со значением, переданным пользователем. Затем происходит формирования списка со всеми возможными результатами поиска.
  7. foreach (XElement values in content) result += values.Attribute("value").Value.ToString(); - осуществляется проход по всем существующим (найденным) элементам, полученным в результате поиска и получение значение заметки.
  8. Оставшаяся часть - производит разбиение строки в соответствии с разделителями и вывод на экран.
Содержание отчета
  1. Задание к лабораторной работе
  2. Описание системы упpавления вводом-выводом.
  3. Описание стpуктуpы данных, используемые системой.
  4. Листинг пpогpаммы, моделиpующей pаботу системы упpавления вводом-выводом.
  5. Пример работы приложения.
  6. Вывод о проделанной работе.
Контрольные вопросы
  1. Какие элементы ввода-вывода составляют основу интерфейса приложений WinRT?
  2. Как реализуется сенсорное взаимодействие?
  3. Что такое плитки и уведомления?
  4. Что такое контракты?
  5. Как приостановить и продолжить работу приложения?
  6. Как реализуется контекстное масштабирование?
< Лекция 13 || Лекция 14: 1234 || Лекция 15 >