Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Вопросы к защите лабораторной работы №3




1. Организация работы с таймером.

2. Работа с элементом NotifyIcon.

3. Организация работы с контекстным меню.

4. Знать свойства и методы элементов управления, используемых в лабораторной работе.

5. Принципы создания MDI‑приложений.

6. Способы расположения дочерних окон в MDI приложении.

7. Отличительные особенности модальных и немодальных диалоговых окон.

8. Способы закрытия модальных диалоговых окон и возврата ими результата работы.



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

Тема: Разработка приложения на языке программирования C# с помощью платформы WРF. Контейнеры компоновки. Графика. Пользовательские элементы управления.

Цель: Освоить основные методы разработки приложений на основе платформы WРF, работы с графикой и разработки пользовательских элементов управления.

 

Теоретические сведения

Наряду с Windows Forms и GDI+ для построения настольных графических интерфейсов, начиная с версии .NET 3.0, также предлагается альтернативный API-интерфейс под названием Windows Presentation Foundation (WPF).

Создание проекта. Размещение элементов на форме

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

После помещения элементов управления на поверхность визуального конструктора можете использовать окно Properties (Свойства) для установки значений свойств выбранного элемента управления, а также для создания обработчиков событий для выбранного элемента.

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

Окно WPF может содержать только один элемент. Чтобы разместить более одного элемента и создать практичный пользовательский интерфейс, нужно поместить в окно контейнер и добавлять элементы в этот контейнер. Это ограничение обусловлено тем фактом, что класс Window унаследован от ContentControl.

Все контейнеры компоновки WPF являются панелями, которые унаследованы от абстрактного класса System.Windows.Controls.Panel, пространство имен которого .Windows.Controls предлагает многочисленные панели, каждая из которых по-своему обслуживает внутренние элементы.

Сам по себе базовый класс Panel — это начальная точка для построения других более специализированных классов. WPF предлагает набор производных от Panel классов, которые можно использовать для организации компоновки. Наиболее основные из них перечислены ниже. Как и все элементы управления WPF, а также большинство визуальных элементов, эти классы находятся в пространстве имен System.Windows.Controls:

StackPanel

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

WrapPanel

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

DockPanel

Выравнивает элементы по краю контейнера

Grid

Выстраивает элементы в строки и колонки невидимой таблицы. Это один из наиболее гибких и широко используемых контейнеров компоновки

UniformGrid

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

Canvas

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

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

Каждая фигура наследуется от абстрактного класса System.Windows.Shapes.Shape. Cуществует относительно небольшой набор классов, унаследованных от класса Shape. Фигуры Line, Ellipse и Rectangle являются простейшими. Polygon состоит из последовательной замкнутой серии соединенных друг с другом отрезков прямых линий. И, наконец, Path — не имеющий себе равных класс "все в одном", который может комбинировать базовые фигуры в едином элементе.

Хотя класс Shape сам по себе не может ничего делать, в нем определен небольшой набор важных свойств, которые устанавливают объект кисти для рисующей поверхности(Fill) и границ (Stroke), контур углов и способ заполнения фигурой доступного пространства (Stretch).Это свойство можно использовать для создания фигуры, которая распространяется на весь содержащий ее контейнер. Можно также принудительно растянуть фигуру по одному измерению, используя значение Stretch для свойств HonzontalAlignment и VerticalAlignment (унаследованных от класса FrameworkElement). Если не установить свойство Stroke или Fill, фигура вообще не появится на экране.

Для графики часто не подходят контейнеры, которые разделяют пространство, изменяют размеры объекта. Этого недостатка лишен лишь контейнер Canvas. Единственное ограничение при использовании Canvas заключается в том, что графика не сможет самостоятельно подгонять свои размеры к большему или меньшему окну. Чтобы сочетать тонкий контроль Canvas с простым изменением размеров, следует использовать элемент Viewbox.

Viewbox — это простой класс, унаследованный от Decorator (который очень похож на класс Border). Он принимает единственный дочерний элемент, который растягивает или сжимает для заполнения доступного пространства. Естественно, этим дочерним элементом может быть контейнер компоновки, удерживающий множество фигур (или других элементов), которые могут синхронно изменять свои размеры. Однако чаще всего Viewbox применяют для векторной графики, а не для обычных элементов управления. Обычно внутрь Viewbox помещается контейнер Canvas, а уже в него — нужные фигуры.

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

Существует несколько способов сделать элемент полупрозрачным:

Установка свойства Opacity элемента

Каждый элемент, включая фигуры, наследует свойство Opacity (прозрачность) от базового класса UIElement. Прозрачность — это дробное значение от 0 до 1, где 1 означает полную непрозрачность (и принято по умолчанию), а 0 — полную прозрачность. Например, значение прозрачности 0,9 создает эффект 90% видимости (10% прозрачности). Установленная подобным образом прозрачность влияет на визуальное содержимое всего элемента.










Последнее изменение этой страницы: 2018-04-12; просмотров: 291.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...