|
Программирование >> Windows foundation
Рис. 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
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 содержит классы, имеющие дело с вводом подобного рода.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |