Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C#

МИНОБРНАУКИ РОССИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

Анапский филиал «Московский государственный гуманитарный университет имени М.А. Шолохова»

Предмет:Устройство и функционирование информационной системы

Практическая работа №2. Знакомство с WPF.

Тема: Знакомство с WPF.

Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C#.

Максимальное время выполнения задания: 4 часа.

Выполняется в VS 2013 на языке C#

WPF, byadmin.

Пора Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru немного познакомиться с WPF (WindowsPresentationFoundation), познакомиться с возможностями системы и попробовать написать простенькое приложение с использованием WPF.

Надо сказать, что первое знакомство с этой системой ввело меня в некоторый ступор. Всё-таки, что бы ни говорили, а многолетний стаж программирования в Delphi оставляет свой отпечаток – довольно тяжко свыкнуться с тем, что разработка интерфейса программы проводится отдельно от логики приложения и более того, для разработки интерфейса требуется знать ещё ОДИН Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru язык, помимо основного. Но всё оказалось не так уж и страшно. И сегодня мы попробуем с Вами написать простенькое приложение с WPF.

Вначале, немного общих сведений о том, что такое WPF. Вот, что говорит нам MSDN:

WindowsPresentationFoundation (WPF) ― это система следующего поколения для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем. C WPF можно создавать широкий спектр как автономных приложений, так и приложений, размещенных в веб-обозревателе. В основе WPF лежит векторная система визуализации, не зависящая от разрешения и созданная с расчетом на возможности современного графического оборудования. WPF расширяет базовую систему полным набором функций разработки приложений, в том числе ExtensibleApplicationMarkupLanguage (XAML), элементами управления, привязкой данных, макетом, 2-D- и 3-D-графикой, анимацией, стилями, шаблонами, документами, мультимедиа, текстом и оформлением. WPF входит в состав Microsoft .NET Framework и позволяет создавать приложения, включающие другие элементы библиотеки классов .NET Framework. В WPF дополнительно совершенствуется процесс программирования для разработки клиентских приложений Windows.

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

РазметкаExtensibleApplicationMarkupLanguage (XAML) обычно используется для реализации внешнего вида приложения.

Для реализации поведения используется ОДИН Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru из языков программирования (кода программной части).

То есть, говоря кратко, всё, что относится к внешнему виду (внешний вид кнопок, панелей, расположение их на форме и т.д.) реализуется с помощью разметки на XAML. Всё, что касается взаимодействия – обработка событий элементов управления, классы, РАБОТА Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru с объектами и т.д. реализуется на одном из языком программирования, с которыми Вы знакомы, например, как в моем случае – на C#.

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

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

Как всегда, начнем с простенького приложения типа “Hello, World”. Открываем VisualStudio, создаем новый проект “Приложение WPF”, назовем его “HelloWPF”:

Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru

Студия создаст нам новый проект. При этом внешний вид редактора будет другим, нежели при создании приложения “WindowsForms” – теперь в главном окне мы видим:

1. Макет

2. Редактор разметки XAML

Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru

Пустое приложение теперь состоит из файлов. содержащих разметку приложения (эти файлы имеют расширение *.xaml) и файлы программной части, в нашем случае эти файлы имеют расширение *.cs.

Наш пустой проект содержит 1 окно с заголовком MainWindow и в этом окне содержится Grid – сетка для размещения в ней других элементов управления.

Вначале, обратимся к редактору разметки. Сейчас наш файл разметки содержит совсем немного информации и разобраться будет по-проще. Например, давайте сменим заголовок окна. Для этого переходим в редактор и меняем значение атрибута Title у узла Window, например, на “HelloWPF”. Запустите приложение и увидите, что заголовок сменился:

Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru

Аналогичным образом, используя редактор разметки, можно менять и другие свойства окна, например, изменить длину и ширину окна, сменить СТИЛЬ и т.д. Можно было бы пойти и более простым путем – воспользоваться редактором свойств. Для этого просто кликаем по элементу и в редакторе изменяем все необходимые свойства. При этом разметка будет меняться автоматически.

Теперь посмотрим на реализацию программной части. Для примера, разместим в главном окне приложения кнопку, клик по которой создаст на форме текстовый блок, содержащий текст “HelloWorld!”.

Открываем панель элементов (ToolBox), выбираем элемент Button и помещаем его в главном окне приложения. При этом обратите внимание на разметку – в редакторе XAML жестко прописывается размер кнопки (атрибуты Width и Height) и положение (атрибут Margin).

Можете немного поэкспериментировать с этими свойствами и посмотреть на поведение кнопки в запущенном приложении, например, попробуйте СДЕЛАТЬ Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru так, чтобы кнопка находилась по горизонтали всегда по центру или изменяла свои размеры в зависимости от размеров окна. Всё это можно задать, используя разметку.

Теперь отредактируем ОДИН Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru из атрибутов узла узлаbutton – атрибут Name. Зададим ему значение “HelloButton”. Теперь при реализации программного кода мы всегда сможем обратиться к кнопке по её имени. Можно было бы, в качестве примера, и не менять имя элемента управления, но это плохая практика программирования – оставлять стандартные имена. Для порядка можете изменить и свойство Content, чтобы задать надпись кнопки.

Теперь, в редакторе XAML задайте имя для сетки (Grid), например, назовем её MasterGrid:

Цель занятия: приобретение первичных навыков признакомстве с WPF в VS 2013 на C# - student2.ru

Для чего мы это сделали, посмотрим на примере обработчика события у кнопки.

Теперь создадим обработчик Click для нашей кнопки. Для этого достаточно дважды кликнуть по Button или создать обработчик, используя окно “Свойства”. В обработчике напишем следующий код:

privatevoid HelloButton_Click(object sender, RoutedEventArgs e) { TextBlocktb=newTextBlock();//создалиновыйэлемент tb.Text=”Hello World!””;//задалитекст //задаем положение элемента в окне Thicknessmrgn=newThickness(0, 0, 0, 0); tb.Margin=mrgn; //добавляем элемент на сетку MasterGrid.Children.Add(tb); }

Теперь запустите приложение, кликните по кнопке и убедитесь, что в левом верхнем углу окна появится новая надпись. Как можно видеть в листинге, для создания надписи я сначала создал новый элемент TextBlock, задал ему положение и затем, используя имя сетки, заданное в редакторе XAML, разместил новую надпись на сетке, добавим TextBlock в коллекцию Children.

Вот простой пример того, как можно разрабатывать приложения с помощью WPF и размещать новые элементы управления в окне в runtime’е. Можно было бы поступить и по другому – заранее размесить на форме TextBlock и в обработчике просто обратиться к элементу по его имени – результат был бы тот же.

Ниже пример рисования эллипса, линий, прямоугольника. Нарисуйте что-нибудь, типа, дом.

<Window x:Class="WpfApplication3.MainWindow"

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

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

Title="MainWindow" Height="350" Width="525">

<Grid Name="MasterGrid" >

<Button Content="Button"HorizontalAlignment="Left"VerticalAlignment="Top" Width="75" Margin="127,142,0,0"

Name="HelloBeby" Click="HelloBeby_Click"/>

<Ellipse Fill="#FFF4F4F5"HorizontalAlignment="Left" Height="100" Margin="286,100,0,0" Stroke="Black"VerticalAlignment="Top" Width="140"/>

<ProgressBarHorizontalAlignment="Left" Height="92"VerticalAlignment="Top" Width="158" Margin="286,142,0,0"/>

<Rectangle Fill="#FFF4F4F5"HorizontalAlignment="Left" Height="70" Margin="38,10,0,0" Stroke="Black"VerticalAlignment="Top" Width="119"RenderTransformOrigin="0.5,0.5">

<Rectangle.RenderTransform>

<TransformGroup>

<ScaleTransform/>

<SkewTransform/>

<RotateTransform Angle="7.239"/>

<TranslateTransform/>

</TransformGroup>

</Rectangle.RenderTransform>

</Rectangle>

<Line X1="10" Y1="10" X2="50" Y2="50" Stroke="Black"StrokeThickness="4" Margin="178,-97,-121,150"RenderTransformOrigin="0.5,0.5" >

<Line.RenderTransform>

<TransformGroup>

<ScaleTransform/>

<SkewTransform/>

<RotateTransform Angle="-33.135"/>

<TranslateTransform/>

</TransformGroup>

</Line.RenderTransform>

</Line>

</Grid>

</Window>

Содержание отчета

Отчет должен содержать следующие разделы:

- Номер практического занятия

- Тема занятия

- Цель занятия

- Ход работы, в котором описывается пошаговое выполнение работы с приложением необходимых скриншотов.

- Вывод.

Кроме того, отчет должен содержать титульник (см. приложение) и содержание, собранное автоматически! Последние 5 человек, сдавшие отчет, сдают отчет в печатном виде, остальные в электронном виде, в имени файла указав фамилию и номер практической и по какой дисциплине, напр. Иванов ИИ 2практ по УФИС.docx

Наши рекомендации