FrameworkElement.LayoutTransform Свойство

Определение

Получает или задает графическое преобразование, которое применяется к элементу при изменении параметров размещения.

C#
public System.Windows.Media.Transform LayoutTransform { get; set; }

Значение свойства

Transform

Преобразование, которое должен использовать данный элемент. Значение по умолчанию — Identity.

Примеры

В следующем примере показано, как применить к LayoutTransform элементу. В этом примере создается экземпляр Button и размещается его в родительском объекте Grid. Он также использует LayoutTransform свойство для применения к RotateTransform Button.

C#

Button btn2 = new Button();
btn2.Background = Brushes.LightCoral;
btn2.Content = "RotateTransform";
btn2.LayoutTransform = new RotateTransform(45, 25, 25);
Grid.SetRow(btn2, 0);
Grid.SetColumn(btn2, 1);
grid1.Children.Add(btn2);
XAML

<Button Grid.Row="0" Grid.Column="1" Background="LightCoral" Content="RotateTransform Applied">
  <Button.LayoutTransform>
    <RotateTransform CenterX="25" CenterY="25" Angle="45" />
  </Button.LayoutTransform>
</Button>

Комментарии

В отличие от RenderTransformэтого, LayoutTransform влияет на результаты макета.

Настройка преобразования предоставляет мощные возможности масштабирования и поворота. LayoutTransform Однако игнорирует TranslateTransform операции. Это связано с тем, что поведение системы макета для дочерних FrameworkElement элементов автокорректирует любые смещения в положение масштабируемого или вращаемого элемента в макете и системе координат родительского элемента.

LayoutTransform может привести к снижению производительности приложения, если вы вызываете его в сценарии, который не требует полного прохода системой макета. При применении LayoutTransform Children к коллекции активирует новый проход по системе макета Panelи принудительно переупорядочение всех объектов на экране. Если вы обновляете полный пользовательский интерфейс приложения, эта функция может быть именно тем, что вам нужно. Однако если вам не нужен полный проход макета, используйте RenderTransform свойство, которое не вызывает систему макета и поэтому обычно лучше подходит для этого сценария.

Примеры сценариев, в LayoutTransform которых было бы полезно: поворот таких элементов, как компоненты меню от горизонтального до вертикального или наоборот, масштабирование элементов (увеличение) на фокусе, обеспечение поведения редактирования и т. д.

Сведения о свойстве зависимостей

Поле идентификатора LayoutTransformProperty
Metadata properties set to true AffectsMeasure

Применяется к

Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7