Разработка приложений на WPF

Автор работы: Пользователь скрыл имя, 01 Сентября 2013 в 23:15, творческая работа

Краткое описание

WindowsPresentationFoundation (WPF) — система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем, графическая (презентационная) подсистема в составе .NET Framework, использующая язык XAML.
WPF предустановленав Windows Vista, Windows, Windows 8.С помощью WPF можно создавать широкий спектр как автономных, так и запускаемых в браузере приложений.
В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учётом возможностей современного графического оборудования.

Содержание

Введение 5
1 Проектирование приложения 6
1.1 Постановка задачи 6
1.2 Проектируемое приложение 6
1.3 Отображение списка папок 6
1.4 Отображение списка файлов 7
1.6 Контекстное меню 7
1.7 Использование ранее созданных классов 7
2 Реализация приложения 8
2.1 Интерфейс приложения 8
2.2 Реализация заполнения дерева папок 8
2.3 Реализация заполнения ListView 9
2.4 Реализация контекстного меню 10
2.5 Тестирование программы 11
Заключение 12

Вложенные файлы: 1 файл

РГР ПП 3.docx

— 688.46 Кб (Скачать файл)

Министерство образования  и науки Российской Федерации

федеральное государственное автономное образовательное учреждение

высшего профессионального образования

«Северный  (Арктический) Федеральный  Университет имени М.В. Ломоносова»

 
 

Кафедра вычислительных систем и телекоммуникаций

 
 

(наименование кафедры)

 
     
 

Кондратюк Кирилл Павлович

 
 

(фамилия, имя, отчество студента)

 
     
 

Институт

ИМИКТ

курс

3

группа

2

   
     
 

230201.65 «Информационные системы и технологии»

 
 

(код и наименование направления  подготовки/специальности)

 
     
 

РАСЧЁТНО-ГРАФИЧЕСКАЯ РАБОТА

 
     
 

По дисциплине

Прикладное программирование

 
     
 

На тему

Разработка приложений на WPF

 
   

(наименование темы)

 
     
     
     
 

(номер и наименование программы  подготовки)

 
             
                 
                 
                 
         
 

Отметка о зачёте

         
             

(дата)

 
         
 

Руководитель 

       

Султанов Д.М.-М.

 
     

(должность)

 

(подпись)

 

(и. о. фамилия)

 
               
     

(дата)

         
                 
                 
     

 

 

 

 

 

 

 

         
 

 

 

 
 

Архангельск 2013

 

Министерство образования  и науки Российской Федерации

федеральное государственное автономное образовательное учреждение

высшего профессионального образования

«Северный  (Арктический) Федеральный Университет имени М.В. Ломоносова»

 

 

 
 

Кафедра вычислительных систем и телекоммуникаций

 
 

(наименование кафедры)

 
     
 

ЗАДАНИЕ  НА  РАСЧЁТНО-ГРАФИЧЕСКУЮ РАБОТУ

 
     
 

по

прикладному программированию

 
   

(наименование дисциплины)

 
 

студенту

ИМИКТ

3

курса

2

группы

 
 

Кондратюку Кириллу Павловичу

 
 

(фамилия, имя, отчество студента)

 
     
 

ТЕМА:

Разработка приложений на WPF

 
     
     

ИСХОДНЫЕ ДАННЫЕ: Разработайте и опишите структуру программы «Проводник» на WPF».                                                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

 

ИСХОДНЫЕ ДАННЫЕ:

Заданы

 
 

функция  спроса  населения на  данный товар Qdx = а - вРх и  функция

 
 

предложения            данного          товара         Qsx     =     -а   +     вРх,

 
 

где Qd и Qs - объем спроса и предложения, млн шт./год, Рх - цена, руб.

 
 
  1. Определить равновесную  цену и равновесный объем продаж.
 
 
  1. Предположим, что на товар установлена фиксированная цена.
 
 

Определить ситуацию, которая сложится на рынке и рассчитать

 
 

добротности     аттестуемой   катушки    и погрешность   аттестации   с

 
 

доверительной вероятностью Р = = 0,95 для нормальных условий.

 
     
     
 

 

 

 

 
     
 

Срок проектирования с

«

 

»

 

2013 г. по

«

 

»

 

2013 г.

 
 

 

Руководитель

 

 

 

Султанов Д.М.-М.

 
     

(должность)

 

(подпись)

 

(и.о. фамилия)

 
                 
                 
         
           
                 
                 
                 
                 

 

ЛИСТ  ДЛЯ ЗАМЕЧАНИЙ

 

 

ОГЛАВЛЕНИЕ

 

Введение 5

1 Проектирование приложения 6

1.1 Постановка задачи 6

1.2 Проектируемое приложение 6

1.3 Отображение списка папок 6

1.4 Отображение списка файлов 7

1.6 Контекстное меню 7

1.7 Использование ранее созданных классов 7

2  Реализация приложения 8

2.1 Интерфейс приложения 8

2.2  Реализация заполнения дерева папок 8

2.3  Реализация заполнения ListView 9

2.4 Реализация контекстного меню 10

2.5 Тестирование программы 11

Заключение 12

Приложение А. Листинг пользовательского компонента TreeViewItemWithIcons 14

Приложение Б. Листинг XAML 16

 

 

ВВЕДЕНИЕ

 

Windows Presentation Foundation (WPF) — система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем, графическая (презентационная) подсистема в составе .NET Framework, использующая язык XAML.

WPF предустановлена в Windows Vista, Windows, Windows 8. С помощью WPF можно создавать широкий спектр как автономных, так и запускаемых в браузере приложений.

В основе WPF лежит векторная  система визуализации, не зависящая  от разрешения устройства вывода и  созданная с учётом возможностей современного графического оборудования. WPF предоставляет средства для создания визуального интерфейса, включая  язык XAML (Extensible Application Markup Language), элементы управления, привязку данных, макеты, двухмерную и трёхмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа и оформление[3].

Производительность WPF выше, чем у GDI+ за счёт использования аппаратного  ускорения графики через DirectX.

XAML представляет собой  XML, в котором фактически реализованы классы .NET Framework. Также реализована модель разделения кода и дизайна, позволяющая кооперироваться программисту и дизайнеру. Кроме того, есть встроенная поддержка стилей элементов, а сами элементы легко разделить на элементы управления второго уровня, которые, в свою очередь, разделяются до уровня векторных фигур и свойств/действий.

Для работы с WPF требуется  любой .NET-совместимый язык.

 

 

 

 

 

 

 

1 ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ

 

1.1 Постановка задачи

Целью данной работы является знакомство с созданием приложений на WPF. Необходимо обеспечить минимальный набор функций для программы «Проводник», обеспечить взаимодействие элементов интерфейса, вывести данные о файлах и папках на компьютере.

1.2 Проектируемое приложение

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

Приложения на WPF имеют схожие компоненты, что и приложения на Windows Forms. При создании программы воспользуемся компонентами TreeView для отображения дерева папок, ListView для списка файлов, StatusBar для вывода краткой информации.

При более детальном изучении компонента TreeView становится ясным, что элементы дерева – TreeViewItem – не имеют свойства ImageIndex, как это было у компонента на Windows Forms. Поэтому, нужно будет изменить реализацию данного компонента.

Для детального отображения  файлов и их свойств также необходимо модифицировать компонент TreeViewItem. Фрагмент пользовательского компонента TreeViewItemWithIcons представлен в приложении А.

1.3 Отображение списка папок

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

При заполнении папками текущего уровня вложений, программа должна проверить, есть ли в каждой из этих папок еще подпапки. Если они есть, то в дереве на этом элементе нужно  отобразить значок «+», означающий, что  данный узел можно раскрыть еще; и  ничего выводить, если папок внутри нет.

Иконка к каждой папке присваивается при помощи функции API.

1.4 Отображение списка файлов

При нажатии пользователем  на какую-либо папку из дерева TreeView в компоненте ListView должен отображаться список файлов выделенной директории.

Отображение в виде таблицы  с подробностями представляет собой  таблицу со следующими столбцами: имя, размер файла, тип файла, иконка, дата создания. Данная реализация достигается благодаря установке шаблона. Листинг шаблона представлен в приложении Б.

1.6 Контекстное меню

Контекстное меню появляется при нажатии правой кнопкой мыши на одном из элементов в ListView. Данное меню предоставляет стандартные функции проводника в Windows, такие как «Открыть файл» и «Свойства».

1.7 Использование ранее созданных классов

В приложении в большинстве  случаев не подходят ранее разработанные  методы из-за изменения структуры компонентов. Однако из созданной ранее библиотеки классов можно использовать функцию получения всех готовых дисков компьютера GetDrives(). Остальные методы не используются.

 

 

 

 

 

 

 

 

  1. РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ

 

2.1 Интерфейс приложения

Графический интерфейс приложения представлен на рисунке 1.

Рисунок 2 – Графический интерфейс программы

 

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

    1. Реализация заполнения дерева папок

При создании нового экземпляра пользовательского компонента TreeViewItemWithIcons к нему добавляется обработчик, вызывающий метод folder_Expanded. Данный метод позволяет при открытии той или иной ветви дерева организовать поиск новых подпапок в директории.

Раскрытая ветка содержит информацию о родителях, а также при помощи нее можно получить полный путь к данному элементу. Таким образом, мы можем получить адрес текущей директории и запросить содержимое папки, отобразить ее содержимое в компоненте ListView.

    1. Реализация заполнения ListView

Для заполнения данного компонента списком файлов и их свойствами, используется Linq-запрос. Данный запрос представлен на рисунке 3.

 

listView1.ItemsSource = new DirectoryInfo(path).GetFiles().Select(item => new FileClass() { icon = myBrowser.GetIconResource(Path.Combine(path,item.Name)), fileName = item.Name, attributes = item.Attributes, extension = item.Extension, creationTime = item.CreationTime.ToString(), fullPath = item.FullName, size = item.Length.ToString()+" байт" }).ToList();

 

Рисунок 3 –  Листинг Linq-запроса

 

Данный запрос позволяет  нам получить коллекцию ItemsSource, с которой работает компонент ListView. Чтобы файлы можно было отобразить в виде таблицы со свойствами, к ней применяется шаблон (приложение Б). Для работы данного компонента с такой пользовательской коллекцией, столбцы таблицы привязываются по определенным значениям. Эти значения повторяются в созданном классе FileClass, который содержит одноименные свойства (рисунок 4).

Рисунок 4 –  Класс FileClass

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

    1. Реализация отображения иконок

В отличие от приложений на Windows Forms, в WPF-приложениях отсутствует такой компонент, как ImageList. Вместо этого, для отображения иконки используются ресурс, содержащий изображения для компонента.

Функция Win API, которая возвращала иконку для папки или файла типа Icon, в первоначальном варианте также является непригодной для данного приложения.

Для конвертации иконки в ресурс, используется код, представленный на рисунке 5.

        /// <summary>

        /// Возвращает ресурс с иконкой

        /// </summary>

        /// <param name="path"></param>

        /// <returns></returns>

        public ImageSource GetIconResource(string path)

        {

            try

            {

                Icon img = WPFLibrary.GetIcon.GetIcons(path);

 

                Bitmap bitmap = img.ToBitmap();

 

                IntPtr hBitmap = bitmap.GetHbitmap();

Информация о работе Разработка приложений на WPF