МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Оси и плоскости тела человека Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


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

Взаимодействие дизайнера и разработчика





ТВЕРСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 
 

Кафедра ЭВМ

 

Программирование на языке C# в среде Microsoft Visual Studio.

Разработка приложений на основе технология WPF.

 

Методические указания к лабораторным работам

по курсу "Объектно-ориентированное программирование"

 

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

 

Тверь 2012

 

Цель лабораторной работы заключается в изучении технологии WPF, ее отличительных особенностей и преимуществ, предоставляемых разработчику, и приобретении практических навыков по ее использованию в процессе разработке и отладке приложений в интегрированной среде Visual Studio.

Основными задачами, решаемыми в процессе выполнения лабораторной работы, являются:

· Изучение особенностей построения приложений на основе технологии WPF в инструментальной среде Visual Studio.

· Ознакомление с языком XAML и приемами работы с ним, при разработке визуального интерфейса приложений

 

Методическое указание обсуждено на заседании кафедры ЭВМ (протокол №___от 2002_ года) и рекомендовано к печати.

 

Составитель: Веселов А.А.

 

 

Содержание

          Стр.
Теоретическая часть.
  1.1 Введение
  1.2 Взаимодействие дизайнера и разработчика
  1.3 Язык XAML
  1.4 Создание простого WPF-приложения
    1.4.1 Создание проекта WPF
    1.4.2 Разделение окна на два столбца
    1.4.3 Добавление списка
    1.4.4 Добавление обработчика события
    1.4.5 Запуск приложения
    1.4.6 Рисование фигур
  1.5 Особенности использования технологии WPF
    1.5.1 Еще раз о технологии WPF
    1.5.2 Метод InitializeComponent()
    1.5.3 Именование элементов
    1.5.4 Свойства и события в XAML
    1.5.5 Простые свойства и конвертеры типов
    1.5.6 Сложные свойства
    1.5.7 Расширения разметки
    1.5.8 Прикрепленные свойства
    1.5.9 Вложенные элементы
    1.5.10 События
    1.5.11 Полный пример автоответчика
    1.5.12 Загрузка и компиляция XAML
Указания к выполнению лабораторной работы
  2.1 Задание на лабораторную работу
  2.2 Содержание отчета по лабораторной работе
  Литература
             

 

Теоретическая часть.

Введение.

Windows Presentation Foundation (WPF) — это совершенно новая графическая система отображения визуальных элементов для ОС Windows. WPF спроектирована для .NET под влиянием таких современных технологии отображения, как HTML и Flash, с использования аппаратного ускорения. Она также представляет собой наиболее радикальное изменение в пользовательском интерфейсе Windows со времен Windows 95.

До появления WPF существующие подходы к созданию пользовательских интерфейсов (UI) для оконных приложений в значительной мере определялось операционной системой. Так, например, для построения ОС Windows предложила использовать набор стандартных элементов и API (интерфейс для программирования приложений) для работы с ними. Это позволило приложениям выглядеть одинаково с системными, не говоря уже о существенном облегчении в программировании UI, т.к. большую часть труда взяла на себя сама система. Однако, со временем, стали появляться альтернативы такому низко-уровневому Windiws API, которые позволяли разрабатывать интерфейсы в объектно-ориентированном стиле и реализовывали шаблон "Модель-Отображение-Управление", который позволял разделять друг от друга представление и данные. Среди других альтернатив стоит упомянуть и язык Java. Одновременно с появлением и развитием этих технологий, появились стали развиваться технологии для работы с продвинутой графикой. Наиболее заметными среди них стоит назвать OpenGL и DirectX, позволившие облегчить работу по созданию игр и мультимедиа-приложений. Стоит отметить, что OpenGL (в отличие от DirectX) является кросс-платформенной и стандартной. Но главное заключается в том, что развитие графических технологий шло параллельно с развитием технологий создания «обычного» UI. И, наконец, с появлением интернета появилась третья ветвь развития пользовательского интерфейса. Это Web-страницы и Web-приложения. Вначале это был чистый гипертекст (HTML), а затем стали появляться многочисленные технологии использующие Java-апплеты, Flash-приложения и т.п.

На данный момент Microsoft предлагает следующие направления развития пользовательского интерфейса:

  • Windows Forms – для создания UI для настольных (desktop) приложений;
  • DirectX и OpenGL – для мира графики;
  • Web Forms для создания UI для Web-приложений.

Итак, с точки зрения UI у нас существует три разных типа приложений, каждый из которых имеет свой набор технологий для реализации. И одной из предпосылок создания WPF является идея интеграции подобных технологий в одной.

Текущей графической платформе Windows уже более 20 лет. И это прекрасно, но, учитывая бурное развитие аппаратных графических средств (видеокарт и разнообразных графических ускорителей), можно было бы использовать всю их мощь не только в приложениях типа игр, но и в обычных приложениях. Мешает нам только то, что с помощью привычных технологий типа MFC или Windows Forms крайне трудно сделать изощренный интерфейс, а тратить время на его создание с помощью DirectX или OpenGL также представляется нецелесообразным. Таким образом, одной из целей создания WPF было предоставить преимущества современных аппаратных графических средств более широкой аудитории разработчиков.

Наконец, еще одной предпосылкой появления WPF стала неудовлетворенность текущей схемой общения дизайнера и разработчика при создании UI.

Таким образом, WPF представляет собой новую графическую подсистема, основанную на управляемом коде и является надстройкой над DirectX, что дает приложениям, написанным с её помощью, богатые возможности по их визуализации. Эта технология объединяет в себе возможности UI для настольных и веб-приложений и UI для игр и мультимедиа-приложений. WPF содержит в себе множество элементов управления и поддерживает работу с видео, анимацией, трехмерными изображениями и т.п.

Но WPF – это не только диалоги, картинки и видео. Кроме этого, она включает в себя реализацию таких возможностей как синтез и распознавание речи. Более полный список того, что поддерживается WPF можно представить в следующем виде:

· Двумерная графика (2D)

· Трехмерная графика (3D)

· Работа с текстами и шрифтами

· Работа с изображениями

· Графические и мультимедиа эффекты

· Аудио

· Видео

· Анимация и работа с временными интервалами

Таким образом, WPF использует векторную технику построения изображения, что дает возможность использовать преимущества мониторов с высоким разрешением, без каких либо дополнительных усилий программиста или пользователя. UI больше не зависит от конкретных разрешений, введено понятие «виртуального пикселя».

Кроме этого, WPF Framework позволяет программистам создавать продвинутые приложения с богатым UI, работающие с мультимедиа, изощренно работать с документами. И все это объединено в единой программной модели. WPF предлагает множество различных элементов управления для:

· Стандартных форм (такие как кнопки и элементы ввода)

· Документов

· Изображений и видео

· Графических примитивов

· 3D

· Различных контейнеров и панелей для размещения элементов управления и т.д.

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

Взаимодействие дизайнера и разработчика

Как выглядит общение дизайнера и разработчика в настоящий момент? Как правило, дизайнер создает макет пользовательского интерфейса в графическом редакторе, на бумаге или с помощью какого-либо другого средства. То есть, с помощью любого, удобного для него средства кроме средства разработки приложения. Как следствие, конкретную реализацию замысла дизайнера все равно создает (или реализует) программист. Это ведет к тому, что, во-первых, дизайнер может создать макет внешнего вида приложения, который в принципе программно нереализуем или труднореализуем, а во-вторых, программист может ошибаться в реализации замысла дизайнера или же по-своему интерпретировать те или иные его пожелания.

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

С помощью WPF станет возможным исключить такие ситуации. Наличие в нем общего знаменателя – языка описания интерфейсов XAML – позволит разделить работу дизайнера и программиста. В самом деле, программисту от XAML в основном нужны только имена элементов управления и обработчики их событий, которые он использует в своей программе. Дизайнер же может спокойно разрабатывать UI в инструментах, более приспособленных для этой задачи, а не в непонятных ему средах разработки программных приложений.

Язык XAML

Если заглянуть в проект, написанный с использованием WPF, то обнаружим в нем множество файлов с расширением xaml. Внимательно присмотревшись можно обнаружить, что именно они определяют интерфейс приложения и для каждого окна приложения создается отдельный файл.

Аббревиатура XAML расшифровывается как eXtended Application Markup Landuage и, как несложно догадаться, представляет собой XML-документ. Рассмотрим небольшой его фрагмент:

<Window x:Class="WpfApplication1.Window3"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="WPF Window" Height="300" Width="300">

<Grid Width="274">

<Button Height="23" HorizontalAlignment="Left" Margin="10,10,0,0"

Name="button1" VerticalAlignment="Top" Width="75">Button</Button>

</Grid>

</Window>

Почему же разработчики WPF решили использовать XML для описания интерфейса. В Windows Forms для этого использовался метод InitializeComponent, который создавался редактором формы. Внутри этого метода находился обычный код, то есть визуальный редактор умел автоматически создавать программный код на языке C#, описывающий интерфейс, умел читать его без компиляции проекта и отображать интерфейс на экране монитора.

Надо сказать, что со второй задачей он справлялся не очень то и хорошо. Часто проект отлично компилировался и работал, но визуальный редактор не мог прочитать им же самим написанный код и отказывался редактировать форму. Если же программист пытался самостоятельно изменить что-либо в методе InitializeComponent, то довольно часто возникали проблемы. Однако, существует и другой способ описывать интерфейс. Например, в Builder для этого использовались специальные файлы с расширением *.pdf, в которых визуальный интерфейс описывался в формате, удобном для редактора, но, увы, недокументированном и непонятном для программиста. Редактор форм всегда корректно работал, но программист был полностью лишен возможности изменить что-либо в этом файле, а некоторых вещей редактор вообще не умел делать. Например, изменять класс, от которого наследовалась форма.

Язык XAML объединяет все лучшее из обоих подходов. С одной стороны XML удобен для визуального редактора, и он всегда способен отобразить корректный файл XAML. А с другой стороны, язык XAML тщательно документирован и разработчик может вручную редактировать интерфейс, если его не устраивают возможности визуального редактора. Более того, существуют сторонние приложения, позволяющие редактировать или создавать тексты XAML. Например существует плагин для Adobe Illustrator, который позволяет сохранить векторное изображение в формате XAML.

Использование XAML для описания пользовательского интерфейса WPF открывает замечательную возможность для сотрудничества дизайнеров и программистов.

Создайте в Visual Studio новый проект WPF Application. В этот проект автоматически будет добавлено одно окно (Window1.xaml). Откройте это окно в визуальном редакторе WPF. При этом вы увидите как внешний вид окна, так и соответствующую ему разметку XAML.

1.4. Создание простого WPF-приложения

1.4.1. Создание проекта WPF

Создайте в Visual Studio новый проект WPF Application. В этот проект автоматически будет добавлено одно окно (Window1.xaml). Откройте это окно в визуальном редакторе WPF. При этом вы увидите как внешний вид окна, так и соответствующую ему разметку XAML.

 

Обратите внимание, что внутри окна "XAML"находится контейнер Grid:

<Window x:Class="WpfExcercise.Window1"

xmlns="http://schemas.microsoft.com/winfx/2006/ xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Window1" Height="300" Width="300">

<Grid>

</Grid>

</Window>





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.