Download presentation
Presentation is loading. Please wait.
Published byMarianna Davis Modified over 6 years ago
1
11/27/2018 7:24 PM Тренинг Введение в разработку приложений на Windows Presentation Foundation Занятие 5 Элементы управления Роман Здебский © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 1
2
Содержание Элементы управления Шаблоны Стили
Произвольные элементы управления
3
Элементы управления 11/27/2018 7:24 PM
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
4
Элементы управления Объектная модель WPF Visual UIElement
FrameworkElement Control Базовые классы Control Что на панели инструментов? Новые Элементы управления
5
FrameworkContentElement
Объектная модель WPF DispatcherObject Dependency Object Decorator Panel Shape FrameworkContentElement ContentElement Visual3D Freezable Animatable Visual UIElement FrameworkElement Control
6
Visual Обеспечивает: Напоминает Win32 handle концепцию (HWND)
Рендеринг Hit testing Clipping (Обрезание краев) Трансформации Вычисление границ Напоминает Win32 handle концепцию (HWND) Visual UIElement FrameworkElement Control
7
UIElement Обеспечивает: События ввода пользователя
Маршрут. события (routed events) Маршрут. команды (routed commands) Анимации BeginAnimation Размеры и позиционирование Measure Arrange DesiredSize Visual UIElement FrameworkElement Control
8
FrameworkElement Обеспечивает: Систему метаданных свойств
Дополнительные свойства расположения Стили Storyboards Триггеры Visual UIElement FrameworkElement Control
9
Control Обеспечивает: Поддержку control templates (шаблонов)
Dependency properties для использования в control templates (шаблонах) Visual UIElement FrameworkElement Control
10
Базовые классы Control
FrameworkElement Control ContentControl ItemsControl
11
Что на панели инструментов?
ItemsControl HeaderedItemsControl MenuItem ToolBar TreeViewItem MenuBase ContextMenu Menu Selector ComboBox ListBox ListView MultiSelector TabControl StatusBar TreeView ButtonBase Button DropDownButton CheckBox RadioButton GridViewColumnHeader RepeatButton ToggleButton Panel Canvas DockPanel Grid TabPanel ToolBarOverflowPanel UniformGrid StackPanel VirtualizingPanel WrapPanel RangeBase ScrollBar ProgressBar Slider
12
Прочее полезное Decorator Primitives Popup Thumb Adorner Decorator
ResizeGrip TickbBar Track TextBoxBase Decorator Adorner Decorator ButtonChrome ListboxChrome Border Viewbox InkPresenter ClassicBorderDecorator
13
Новые элементы управления
Недавно вышли: DataGrid Calendar/DatePicker В CTP Ribbon*
14
Templates (Шаблоны) 11/27/2018 7:24 PM
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
15
Шаблоны Шаблоны в WPF Look-less Controls (элементы без вида)
Control Templates (шаблоны) TemplateBinding Демо: Шаблоны
16
Lookless Controls Элементы без вида
WPF элементы абстрагированы от вида: Обеспечивают поведение Нет встроенной визуализации Внешний вид определяется отдельно от реализации В файле темы (theme file) Создается дизайнером Элементы обычно имеют стиль по умолчанию
17
Шаблоны (Control Templates)
Определяют структуру элемента Визуальное дерево шаблона разворачивается для каждого экземпляра элемента
18
Шаблоны в WPF =
19
Шаблоны в WPF Переопределяют визуальное дерево
Замена шаблона изменяет вид, но не поведенческую модель Каждый элемент управления в составе WPF имеет шаблон Шаблоны не наследуются через BasedOn свойство
20
TemplateBinding Связывает свойство элемента в шаблоне со свойством элемента, к которому шаблон применяется. Защищает свойства, установленные на дочерних элементах от переопределения в шаблоне Использует класс TemplateBindingExtension
21
11/27/2018 7:24 PM Шаблоны Демо © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
22
11/27/2018 7:24 PM Стили © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
23
Стили Стили в WPF Расширение стилей Стили в XAML Применение стилей
Демо: стили
24
Стили в WPF Коллекция значений свойств
Группируются элементом <Style> типа System.Windows.Style Стили используются для определения шаблонов Стили именуются с помощью атрибута x:Key
25
Расширение стилей С помощью свойства BasedOn, указывающего на существующий стиль Все setters родительноского стиля наследуются потомком Стили могут использовать BasedOn вместе с x:Key
26
Расширение стилей
27
Применение стилей Стили могут быть применены:
Name/Key (Имя или ключ) Type (Тип) Scope (Область видимости) Может использоваться комбинация этих методов Элемент использует стиль если он подходит по типу и области видимости или, используя атрибут Style
28
Применение стилей Name/Key Type Scope
29
11/27/2018 7:24 PM Стили Демо © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
30
Произвольные элементы управления
11/27/2018 7:24 PM Произвольные элементы управления © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
31
Произвольные элементы управления
Произвольные элементы управления Способы создания UserControl Custom Controls
32
Возможности создания новых
WPF три модели создания произвольных элементов управления : Наследовать от UserControl Наследовать от Control Наследовать от FrameworkElement
33
UserControls Создание UserControl позволяет осуществлять композицию существующих элементов Например контрол для поиска из Textbox и Button UserControl - ContentControl Чтобы создать UserControl Определить класс унаследованный от UserControl В XAML определить визуализацию UserControl из каких элементов он состоит
34
Custom Controls Создавайте custom controls для:
Расширения существующего, например TextBox Получении элемента поддерживающего стилизацию через шаблоны (control template) Максимальное повторное использование Чтобы создать custom control: Определить класс, наслед. От Control Переопределить DefaultStyleKeyProperty Определить шаблон в /Themes/Generic.xaml ресурсном словаре
35
Пример Custom Control Derived from Control Override default style
Control template in Generic.xaml
36
Произвольные элементы управления
Наследование от FrameworkElement больше контроля над внешним видом Два метода: Direct Rendering: переопределение OnRender метода, DrawingContext операции для явного определения визуальных элементов Custom Element Composition: построение дерева на основе визуальных объектов
37
Произвольные элементы управления
Произвольные элементы управления Visual Прямой рендеринг Композиция элементов UIElement Shape FrameworkElement Border Track Control
38
11/27/2018 7:24 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.