Программирование >>  Windows foundation 

1 2 [ 3 ] 4 5 6 ... 15



Рис. 34.3. Пример пользовательского интерфейса в Expression Blend

Иерархия классов

WPF состоит из т1сяч классов, организованных в многоуровневую иерархию. Чтобы помочь понять отношения между этими классами, на рис. 34.4 показана часть диаграммы классов WPF. Некоторые классы и их функциональность описаны в табл. 34.1.

DispatcherObject Application DependencyObject

Shape

Ellipse

Visual

I UlElement I

FrameworkElement

Control

Line

Panel

TextBlock

UserControl Window

Label

1 WrapPanel

1 Canvas

I l

StackPanel Grid

ListBoxItem

ButtonBase

Рис. 34.4.

Часть диаграммы классов WPF

Button

I I ToggleButton

CheckBox RadioButton



Таблица 34.1. Некоторые классы WPF

Класс

FrameworkElement

Shape

Control

Panel

ContentControl

Описание

DispatcherObject

Application

DependencyObject

Visual

UIElement

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

В приложении WPF может быть создан один экземпляр класса Application. Этот класс реализует шаблон Singleton для доступа к окнам приложения, его ресурсам и свойствам.

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

Visual - базовый класс для всех визуальных элементов. Этот класс включает средства стрессового тестирования и трансформации.

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

FrameworkElement унаследован от базового класса UIElement и реализует поведение по умолчанию методов, определенных в базовом классе.

Shape - базовый класс для всех элементов - фигур; например, Line, Ellipse, Polygon, Rectangle.

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

Класс Panel наследуется от FrameworkElement и является абстрактным базовым классом для всех панелей. Этот класс имеет свойство Children для всех элементов пользовательского интерфейса внутри панели и определяет методы для размещения дочерних элементов управления. Классы, унаследованные от Panel, определяют различное поведение организации дочерних элементов; например, WrapPanel, StackPanel, Canvas, Grid.

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

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

Пространства имен

Классы из Windows Forms и WPF очень легко спутать. Классы Windows Forms находятся в пространстве имен System.Windows.Forms, в то время как классы WPF - внутри пространства имен System.Windows и вложенных в него пространств, за исклю-



чением System.Windows.Forms. Класс Button из Windows Forms имеет полное имя System.Windows.Forms.Button, а класс Button из WPF - System.Windows.Controls. Button. Тема Windows Forms раскрыта в главах 31 и 32.

Пространства имен WPF и их функциональность описаны в табл. 34.2.

Таблица 34.2. Пространства имен WPF

Пространство имен

System.Windows

System.Windows.Annotations

System.Windows.Automation

System.Windows.Controls

System.Windows.Converters

System.Windows.Data

System.Windows.Documents

System.Windows.Ink

Описание

Это центральное пространство имен WPF. Здесь вы найдете основные классы ядра WPF, такие как Application, классы объектов зависимости DependencyObject и DependencyProperty, а также базовый класс для всех элементов WPF - FrameworkElement.

Классы из этого пространства имен применяются для пользовательских аннотаций и пометок (notes) данных приложения, которые хранятся отдельно от документа. Пространство имен

System.Windows.Annotations.Storage содержит классы для хранения аннотаций.

Классы из этого пространства имен могут использоваться для автоматизации приложений WPF. Внутри него доступно несколько подпространств. System.Windows.Automation. Peers предоставляет элементы WPF для автоматизации - например, ButtonAutomationPeer и CheckBoxAutomationPeer. Пространство имен System.Windows.Automation.Provider необходимо, если вы создаете собственного поставщика автоматизации.

Это пространство имен, в котором вы можете найти все элементы управления WPF, такие как Button, Border, Canvas,

ComboBox, Expander, Slider, ToolTip, TreeView и тому подобные. В пространстве имен System.Windows.Controls. Primitives вы найдете классы, используемые внутри сложных элементов управления, например, Popup, ScrollBar,

StatusBar, TabPanel и другие.

Пространство имен System.Windows.Converters содержит классы, предназначенные для преобразования данных. Не ожидайте найти здесь все классы для преобразования. Основные классы, конвертирующие данные, определены в пространстве имен System.Windows.

Пространство имен System.Windows.Data используется для привязки данных WPF. Важнейшим классом из этого пространства имен является Binding, служащий для определения привязки между целевым элементов WPF и источником CLR.

Если вы работаете с документами, то в этом пространстве имен найдете множество полезных классов. FixedDocument и FlowDocument - элементы содержимого, которые могут включать в себя другие элементы из этого пространства имен. С помощью классов из пространства имен System.Windows.Documents. Serialization вы можете записывать документы на диск.

Устройства вроде Windows Tablet PC и Ultra Mobile PC используются все шире и шире. На этих устройствах для организации пользовательского ввода могут применяться чернила. Пространство имен System.Windows.Ink содержит классы, имеющие дело с вводом подобного рода.



1 2 [ 3 ] 4 5 6 ... 15

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.002
При копировании материалов приветствуются ссылки.
Яндекс.Метрика