Transcript Тренинг Введение в
Тренинг
Введение в разработку приложений на Windows Presentation Foundation
Занятие 4
Шаблоны расположения Роман Здебский [email protected]
http://blogs.msdn.com/roman
Панели Расширенные панели Трансформации Движок шаблонов расположения Демонстрации 2
3
Панели в WPF Canvas StackPanel WrapPanel DockPanel Grid Колонки и строки Star Sizing Свойства, влияющие на расположение Свойства, связанные с расположением Демо: Панели 4
Панели отвечают за расположение элементов Framework панели: Canvas StackPanel WrapPanel DockPanel Grid 5
Top, Left X Y
Абсолютное позициони рование
Bottom, Left Top, Right Bottom, Right
6
Ставит в ряд дочерние элементы Ориентация: Vertical Horizontal 7
Ставит элементы в ряд Когда элементы не помещаются, они переносятся Ориентация: Horizontal Vertical 8
Top Left Bottom Right LastChildFill
9
Column = 0 Column = 1 Row = 0 ColumnSpan = 2 Row = 1 Row = 2 RowSpan = 3 Column = 2 Row = 3
10
Строки определятся: RowDefinition Колонки определяются: ColumnDefinition Используются GridLength значения: Высоты строки Ширины колонки
< Grid > < Grid.RowDefinitions
> < RowDefinition Height =' 100 ' /> < RowDefinition Height =‘ Auto ' /> Grid.RowDefinitions
> < Grid.ColumnDefinition
s > < ColumnDefinition Width =' 50 ' /> < ColumnDefinition Width =' 100 ' /> < ColumnDefinition Width =‘ * ‘ /> Grid.ColumnDefinitions
> Grid >
11
Используются для пропорциональных значений Могут быть взвешенными: 12
HorizontalAlignment VerticalAlignment Margin Padding Text box Padding Окантовка внутри элементы Margin Окантовка между элементом и другими дочерними элементами 13
Visibility ClipToBounds Clip Panel (Canvas) Text box Text ClipToBounds = “False“ ClipToBounds = “True “ 14
15
16
VirtualizingPanel Специализированные Панели 17
Абстрактный класс, позволяющий осуществлять виртуализацию интерфейса Не включает виртуализацию данных VirtualizingStackPanel ListBox 18
19
20
Трансформации в WPF Render Transforms Layout Transforms Демо 21
Framework Transforms: ScaleTransform TranslateTransform SkewTransform RotateTransform TransformGroup Scale
Before Transform
Translate Skew Rotate Scale Translate
After Transform
22
Все UIElements имеют свойство RenderTransform Трансформации RenderTransform не влияют на расположение Button 1 Rotate
Before Transform
Button 2 Rotate Button 3 Rotate
After Transform
23
Все FrameworkElements имеют свойство LayoutTransform Трансформации LayoutTransform влияют на расположение Button 1 Rotate
Before Transform
Button 2 Rotate Button 3 Rotate
After Transform
24
25
26
“Шаблон расположения” – это размер и позиции элементов в пользовательском интерфейсе Элементы шаблонов расположения (Panels): Содержат коллекцию дочерних элементов Отвечают за определение их размеров Отвечают за позиционирование дочерних элементов 27
1.
2.
3.
• Наследуются от Panel Реализуют MeasureOverride Вызывают Measure каждого дочернего элемента • Реализуют ArrangeOverride Вызывают Arrange каждого дочернего элемента 28
public class CustomPanel : Panel { protected override Size MeasureOverride( Size availableSize) { foreach ( UIElement { child in InternalChildren) child.Measure(availableSize); ...
} } protected override Size ArrangeOverride( Size finalSize) { foreach { ( UIElement child child.Arrange(...); ...
in InternalChildren) } } }
29
© 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