Тренинг Введение в

Download Report

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.ColumnDefinition

s > < ColumnDefinition Width =' 50 ' /> < ColumnDefinition Width =' 100 ' /> < ColumnDefinition Width =‘ * ‘ />

>

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