WPF, Трансформації

Трансформації є інструментом зміни положення або розміру елементів WPF. Трансформації можуть бути корисні в тих ситуаціях, коли треба змінити положення елемента або анімувати. Усі трансформації успадковуються від абстрактного базового класу System.Windows.Media.Transform і представляють такі класи:

TranslateTransform: зсуває елементи по горизонталі та вертикалі

RotateTransform: обертає елемент

ScaleTransform: виконує операції масштабування

SkewTransform: змінює позицію елемента шляхом нахилу на певну кількість градусів

MatrixTransform: змінює координатну систему відповідно до певної матриці

TransformGroup: представляє групу трансформацій

RotateTransform

RotateTransform повертає елемент навколо осі на певну кількість градусів. Цей об'єкт приймає три основні параметри:

Angle: кут повороту

CenterX: встановлює центр обертання по осі X

CenterY : встановлює центр обертання по осі Y

трансформації

TranslateTransform

TranslateTransform дозволяє змістити положення елемента по осі X, за допомогою властивості X, і по осі Y - за допомогою властивості Y.

допомогою

ScaleTransform

Забезпечує масштабування елемента певну величину. Для зміни ширини треба задати властивість ScaleX, а для зміни довжини – властивість ScaleY. Крім того, є властивості CenterX і CenterY , що дозволяють позиціонувати елемент.

Наприклад, збільшення прямокутника у півтора рази:

властивості

SkewTransform

SkewTransform дозволяє задати нахил елемента вздовж осі X за допомогою властивості AngleX, і по осі Y - за допомогою властивості AngleY. А за допомогою властивостей CenterX та CenterY можназмінити положення елемента щодо осі X і Y:

допомогою

MatrixTransform

Здійснює матричне перетворення елемента. В якості Matrix ми задаємо перші два стовпці, які застосовуються при перетворенні. Останній стовпець має значення .

властивості

TransformGroup

TransformGroup дозволяє комбінувати різні трансформації разом:

RenderTransform та LayoutTransform

Для застосування трансформацій у фігур та стандартних елементів керування WPF використовуються властивості RenderTransform та LayoutTransform. Незважаючи на те, що для обох властивостей трансформації задаються однаково, їхня дія відрізняється. Так, властивість LayoutTransform застосовується до компонування елемента, а RenderTransform - після, тому однакові трансформації для цих властивостей можуть давати різні результати: