FrameworkElement.LayoutTransform Свойство

Определение

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

public:
 property System::Windows::Media::Transform ^ LayoutTransform { System::Windows::Media::Transform ^ get(); void set(System::Windows::Media::Transform ^ value); };
public System.Windows.Media.Transform LayoutTransform { get; set; }
member this.LayoutTransform : System.Windows.Media.Transform with get, set
Public Property LayoutTransform As Transform

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

Transform

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

Примеры

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


Button^ btn2 = gcnew Button();
btn2->Background = Brushes::LightCoral;
btn2->Content = "RotateTransform";
btn2->LayoutTransform = gcnew RotateTransform(45, 25, 25);
Grid::SetRow(btn2, 0);
Grid::SetColumn(btn2, 1);
grid1->Children->Add(btn2);

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);

Dim btn2 As 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)

<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

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