Студопедия

КАТЕГОРИИ:

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

Наследование значений свойств.




Преимущества WPF.

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

основные возможности

Широкая интеграция

 Независимость от разрешающей способности.

 Аппаратное ускорение. Поскольку WPF основана на технологии DirectX

 

Язык XAML и правила, определяющие его синтаксис.

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

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

 Код на XAML легко скопировать в различные средства разработкии сразу увидеть результат без какой либо компиляции.

 Именно код XAML генерируют практически все средства разработки, связанные с WPF.

XAML базируется на языке расширенной разметки XML и его синтакс определяется следующими правилами:

каждый элемент XAML-документа отображается на некоторый экземпляр класса .NET. Имя такого элемента в точности соответствует имени класса

элементы XAML можно вкладывать друг в друга. Вложение элементов разметки обычно отображает вложенность элементов интерфейса;

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

 

Пространства имен в XAML-документе.

Язык XAML характеризуется самоописанием. Каждый элемент в XAML-документе представляет имя типа в рамках заданного пространства имен. Атрибуты элементов используются для задания свойств и событий соответствующих объектов.Пространство имен в XAML-документе задается с помощью атрибута xmlns.

Префикс (command) используется для ссылки на пространство имен в XAML-документе. Лексеме clr-namespace присваивается название пространства имен .NET в сборке.

Атрибуты и элементы свойств.

Простые свойства задаются вXAML-документе ИмяСвойства ="значение"

сложные свойства в соответствии с синтаксисом "свойство-элемент":Родитель.ИмяСвойства

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

Элементы свойств всегда имеют вид ИмяТипа.ИмяСвойства и обязательно вложены в объектный элемент вида ИмяТипа. У элементов свойств не может быть собственных атрибутов.

Для программного управления элементами управления, описанными в XAML-документе необходимо для элемента управления задать XAML атрибут Name.

<GridName="grid">

</Grid>

Свойство Content.

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

Так составное содержимое Button, например

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

<Button.Content>

<Rectangle Height ="40" Fill="Black"/>

</Button.Content>

</Button>

можно переписать так:

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

<Rectangle Height ="40" Fill="Black"/>

</Button>

Расширения разметки и присоединенные свойства.

Для задания значения свойства из выделенного класса используется расширение разметки,. Расширения разметки могут использоваться во вложенных дескрипторах или в XAML-атрибутах. Когда это используется в атрибутах, то необходимо применять фигурные скобки {...}.

<Button

Foreground="{x:StaticSystemColors.ActiveCaptionBrush}"

/>

Присоединенные свойства описывают свойства, которые могут применяться к нескольким элементам управления, но которые определены в другом классе. Синтаксис присоединенных свойств следующий.

ОпределяющийТип.ИмяСвойства

Атрибуты объектов могут использоваться для присоединения обработчиков событий, используя следующий синтаксис.

ИмяСобытия = "ИмяМетодаОбработчикаСобытия"

Иерархия классов, входящих в состав WPF.

Object - базовый класс, которому наследуют все остальные классы .NET, и единственный не имеющий прямого отношения к WPF.

DispatcherObject - базовый класс, предназначенный для объектов, к которым можно обращаться только из того потока, где они были созданы. Большинство классов WPF наследуют DispatcherObject и, следовательно, принципиально небезопасны относительно потоков.

DependencyObject - базовый класс, предназначенный для объектов, поддерживающих свойства зависимости

Visual - базовый класс для объектов, имеющих двумерное визуальное представление.

UlElement - базовый класс для двумерных визуальных объектов с поддержкой маршрутизации событий, привязки команд, компоновки и захвата фокуса.

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

Control - базовый класс для таких хорошо знакомых элементов управления, как Button, ListBox и StatusBar. Класс Control добавляет к своему базовому классу FrameworkElement множество свойств, например Foreground, Background и FontSize, а также возможность тотального изменения стиля.

Shape является базовым для построения таких геометрических форм как прямоугольник, эллипс, многоугольник, линия и путь.

ContentControl и ItemsControl являются базовыми для элементов управления, которые могут иметь содержание единственное или коллекцию соответственно.

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

Свойства зависимостей.

Большинство свойств у элементов WPF являются свойствами зависимости. И все же свойства зависимости не являются обычными свойствами. Лучше всего представлять себе эти свойства как обычные но с дополнительным набором возможностей WPF.Рядовые свойства не могут поддерживать все характеристики свойств зависимости, не перегружая при этом систему.Свойства зависимости являются специфическим детищем WPF. Однако в библиотеках WPF они всегда заключены в оболочки обычных процедур свойств .NET. На высшем уровне все свойства зависимости создаются следующим образом:

Прежде всего, класс, определяющий свойство зависимости, должен иметь в своей цепочке наследования DependencyObject.

Единственное свойство зависимости представляется как общедоступное, статическое, предназначенное только для чтения поле в классе типа DependencyProperty. По существующему соглашению имя этого поля формируется добавлением слова Property к имени оболочки CLR.

Переменная DependencyProperty зарегистрирована с помощью статического вызова DependencyProperty.Register(), что обычно происходит в статическом конструкторе или встроенным образом, при объявлении переменной.

Наконец, класс определит дружественное к XAML свойство CLR, которое осуществляет вызовы методов, предоставленных DependencyObject, для получения и установки значения.

Основные преимущества, которые выходят за рамки простой инкапсуляции данных, имеющейся в свойстве CLR:

Свойства зависимости могут наследовать свои значения от XAML-определения родительского элемента.

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

1. Локальное значение

2. Триггер в шаблоне родителя

3. Шаблон родителя

4. Триггеры в стиле

5. Триггеры в шаблоне

6. Установщики стиля

7. Триггеры стиля темы

8. Установщики стиля темы

9. Наследование значения свойства 

10. Значение по умолчанию

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

При изменении значения свойства зависимости WPF может автоматически инициировать некоторые действия в соответствии с метаданными свойства. Одна из самых интересных черт встроенного механизма уведомления об изменении — триггеры свойств.

Наследование значений свойств.

Словосочетание «наследование значений свойств» относится к распространению значений свойств вдоль дерева элементов.приведен перечень десяти поставщиков, которые могут устанавливать значения большинства свойств зависимости, - в порядке убывания приоритета:

 Локальное значение

 Триггер в шаблоне родителя

 Шаблон родителя

 Триггеры в стиле

 Триггеры в шаблоне

 Установщики стиля

 Триггеры стиля темы

 Установщики стиля темы

 Наследование значения свойства 

 Значение по умолчанию 

Локальное значение (1) технически означает любое обращение к методу DependencyObject.SetValue, но обычно имеет вид простого присваивания свойства в XAML или процедурном.










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

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