Добавлен: 10.01.2024
Просмотров: 115
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Курсовая работа
на тему:
«Windows Presentation Foundation»
Выполнил:
Проверил:
Тула 2023 г.
Введение 2
Заключение 79
Список использованной литературы 80
Введение
Совершенно новой технологией программирования, которая стала поддерживаться Microsoft, начиная с библиотеки .NET Framework 3.0, является WPF – Windows Presentation Fondation (ранее носившая кодовое название Avalon). Эта библиотека еще не так развита в плане разнообразия библиотечных компонентов, как Windows Forms, но открывает для будущего широкие перспективы и является одной из частей нового API будущих версий Windows.
Существует два вида программ: для взаимодействия с людьми и для взаимодействия с другими программами. Технология WPF ориентирована как раз для взаимодействия с людьми. Многие подходы к созданию приложений в WPF ориентированы на упрощение процесса программирования пользовательских интерфейсов, что может значительно расширить круг программистов разного уровня подготовки, способных создавать приложения промышленного уровня.
Не смотря на то, что .NET создавалась независимой от платформы и должна бы работать на любой системе, WPF скорей всего, не сможет жить в любой среде – уж слишком сильно прослеживается связь с Windows и DirectX. Уже сейчас есть ограничения на используемую версию ОС Windows: минимальным требованием является Windows XP SP2. В Windows XP и Windows 2003 требуется отдельная установка, в то время как в Windows Vista данная подсистема уже предоставлена.
Новая графическая система Windows Presentation Foundation предназначена для создания пользовательских интерфейсов, 2D и 3D графики и т. д. Мощь WPF заключается в том, что 2D графика строится в векторном виде, а это значит, что интерфейсы будут максимально независимы от разрешения экрана и размера окна. Они будут легко масштабироваться без потери качества и быстро работать благодаря максимальному использованию возможностей современных графических ускорителей.
WPF включает в себя язык разметки XAML – Extensible Application Markup Language (произносится "заммль" – расширяемый язык разметки приложений ) как подмножество (диалект) языка XML и используется для создания и инициализации объектов. Использование языка XAML позволяет участвовать в разработке приложений людям с различными знаниями и опытом программирования. XAML – это мост между программистами и дизайнерами.
XAML использует основные четыре категории элементов:
-
панели размещения; -
элементы управления; -
элементы, связанные с документом; -
графические фигуры.
WPF объединяет документы, формы и мультимедийное содержание в пакет, состоящий из языка разметки и процедурного языка программирования. Такой подход все больше стирает грань между Windows- и Web- программированием, сохраняя их лучшие достижения и традиции. Модель программирования WPF включает в себя одновременно декларативную(разметка) и императивную(кодовую, процедурную, бизнес-логику) части.
Теперь внешний вид приложения может создавать дизайнер, а не программист. Он может создавать окна в специализированных и простых программах, а программист в это время может писать логику. Таким образом, работа идет параллельно, а результирующий продукт может появиться на рынке быстрее. Когда дизайном занимается профессионал, то интерфейс будет смотреться намного лучше, чем работа программиста. Программисты должны писать код, а не рисовать.
Для дизайнеров Microsoft предлагает продукт под названием Microsoft Expression Blend. Это программа специально написана для специалистов интерфейса, а не программистов и не требует знания языков программирования.
WPF построен поверх DirectX, что позволяет использовать всю мощь современного "железа". Так, например, когда WPF определяет наличие видеокарты, поддерживающей аппаратное ускорение, он автоматически использует эти возможности карты. Использование WPF требует серьезной аппаратной поддержки – наличия графического процессора, поддерживающего DirectX 9.
Рендеринг в WPF – векторный, это дает возможность использовать преимущества мониторов с высоким разрешением, без каких либо дополнительных усилий программиста или пользователя. Интерфейс пользователя больше не зависит от конкретных разрешений, введено понятие "виртуального пиксела". WPF Framework позволяет программистам создавать продвинутые приложения с богатым пользовательским интерфейсом, работающие с мультимедиа, изощренно работать с документами: все это объединено в единой программной модели. WPF предлагает множество различных элементов управления для:
-
стандартных форм (такие как кнопки и элементы ввода); -
документов; -
изображений и видео; -
графических примитивов; -
3D; -
различных контейнеров и панелей для размещения элементов управления.
XAML содержит ровно одну корневую вершину и является деревом отображения. На вершине иерархии находится один из контейнерных объектов. Внутри этих объектов располагаются элементы управления и другие контейнеры. В XAML названия элементов всегда чувствительны к регистру и точно совпадают с именами классов, доступных в кодовой части WPF.
Целью курсовой работы является:
-
Познакомиться с основами технологии Windows Presentation Foundation. -
Изучить пользовательские элементы управления WPF. -
Получить практические навыки по созданию приложений с интерфейсами, основанными на использовании WPF.
1. Создание приложения Windows Foundation Presentation
Запускаем Visual Studio 2010, откроется Начальная страница:
Для начала, надо создать проект, для этого выполним последовательно: Файл -> Создать -> Проект… (также можно просто нажать сочетание клавиш Ctrl+Shift+N или пункт «Создать проект…» на Начальной странице):
Рис. 2. 1. Создание нового проекта
Выберем слева в пункте Установленные шаблоны язык Visual C#, далее найдём в списке Приложение WPF. Также здесь можно выбрать какой использовать «фреймворк» (набора компонентов для написания программ, конечную платформу). В нашем случае выберем .NET Framework 4.
Рис. 2. 2. Окно создания нового проекта
В поле Имя вводим LWP08WPF02 — это название программы (выбрано по названию лабораторного практикума, номеру и названию работы). В поле Расположение указана конечная директория где будет находится весь проект. Выберем расположение удобное для быстрого поиска. В поле Имя решения вводится либо название программы «по умолчанию» из поля Имя автоматически, либо можно ввести своё собственное. Под этим именем будет создана конечная папка проекта (если Имя и Имя решения разные).
Рис. 2. 3. Вводим данные нового проекта приложения WPF
После нажатия клавиши ОК мы увидим сформированный проект и исходный код приложения WPF (не пустого изначально). Среда разработки сформировала исходный код в двух файлах (не считая стандартного AssemblyInfo.cs). Один из файлов отвечает за программу в целом (это файл App.xaml.cs), а второй за формирование окна приложения — инициализацию конструктора формы и всех её элементов (это файл MainWindow.xaml.cs). Как видим, исходный код, например файла App.xaml.cs не отличается от шаблонного:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
namespace LWP08WPF02
{
///
/// Логика взаимодействия для App.xaml
///
public partial class App : Application
{
}
}
XAML-код App.xaml выглядит так:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
Файл MainWindows.xaml.cs содержит следующий исходный код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace LWP08WPF01
{
///
/// Логика взаимодействия для MainWindow.xaml
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
XAML-код MainWindows.xaml выглядит так:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
Рис. 2. 4. Обозреватель решений: состав проекта приложения WPFсформированного средой разработки
Теперь посмотрим текущий макет нашей главной формы, которая должна запуститься в качестве главного окна:
Рис. 2. 5. Макет формы MainWindows.xaml: отображение конструктора формы (сверху) и представление этой формы в качестве рамзетки XAML (внизу)
Теперь, можно откомпилировать созданную программу, нажав клавишу F5 ( Отладка -> Начать отладку или нажав на иконку
. Тем самым мы запускаем приложение в режиме отладки (и производим компиляцию debug-версии программы) (Debug выбрано изначально).
Рис. 2. 6. Запуск приложения WPF по конфигурации Debug
3. Модификация приложения Windows Foundation Presentation
Начнём сразу с нового класса. Добавим новый класс в проект. Правая кнопка мыши по названию проекта ( ), затем Добавить -> Создать элемент… (Ctrl+Shift+N). Выбираем (Установленные шаблоны: Visual C#): Класс, вводим Имя: Presenation.cs (пространство имён будет выбрано как у приложения, имя класса будет выбрано по названию файла):
Рис. 3. 1. Добавление нового элемента – LWP09WPF02
Сформируется новый файл в обозревателе решений ( ), его код такой:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LWP09WPF02
{
class Presentation
{
}
}
Модифицируем код следующим образом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
namespace LWP09WPF02 // Пространство имён приложения (должно быть такое же как и у главного окна)
{
public class Presentation : INotifyPropertyChanged
{
private string[] slides = { "01Title.xaml", "02Slide.xaml", "03Slide.xaml" }; // Список слайдов (последовательность определяет вызов)
private int currentIndex = 0;
private bool currentTimer = false;
public string[] Slides // Свойство для получения списка всех слайдов
{
get { return this.slides; }
}
public string CurrentSlide // Свойство для получения текущего выбранного слайда
{
get { return this.slides[this.currentIndex]; }
}
public int CurrentIndex // Свойство для получения текущего выбранного индекса для слайда или установки нового индекса и генерации PropertyChanged
{
get { return this.currentIndex; }
set
{
if (this.currentIndex != value)
{
this.currentIndex = value;
this.OnPropertyChanged("CurrentSlide");
this.OnPropertyChanged("CanGoBack");
this.OnPropertyChanged("CanGoNext");
}
}
}
public bool CanGoBack // Логическая переменая (свойство): проверка, есть ли ещё страницы для перехода назад
{
get { return this.currentIndex > 0; }
}
public bool CanGoNext // Логическая переменая (свойство): проверка, есть ли ещё страницы для перехода вперёд