Freigeben über


FrameworkElement.LayoutTransform Eigenschaft

Definition

Ruft eine Grafiktransformation ab, die für dieses Element gelten soll, wenn das Layout ausgeführt wird, oder legt diese fest.

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

Eigenschaftswert

Die Transformation, die dieses Element verwenden soll. Der Standardwert ist Identity.

Beispiele

Das folgende Beispiel zeigt, wie ein LayoutTransform auf ein Element angewendet wird. Das Beispiel erstellt eine Instanz von und Button hostet sie in einem übergeordneten Grid. Außerdem wird die LayoutTransform -Eigenschaft verwendet, um ein RotateTransform auf anzuwenden 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>

Hinweise

Im Gegensatz zu RenderTransformwirkt sich auf LayoutTransform die Layoutergebnisse aus.

Das Festlegen einer Transformation bietet leistungsstarke Funktionen zum Skalieren und Rotieren. LayoutTransform Vorgänge werden jedoch ignoriertTranslateTransform. Dies liegt daran, dass das Layoutsystemverhalten für untergeordnete Elemente eines FrameworkElement automatischen Offsets auf die Position eines skalierten oder gedrehten Elements im Layout- und Koordinatensystem des übergeordneten Elements korrigiert.

LayoutTransform kann zu einer schlechten Anwendungsleistung führen, wenn Sie sie in einem Szenario aufrufen, das keine vollständige Durchlaufzeit des Layoutsystems erfordert. Wenn Sie ein LayoutTransform auf die Children Auflistung von anwenden, löst dies Paneleinen neuen Durchlauf durch das Layoutsystem aus und erzwingt, dass alle Bildschirmobjekte neu gemessen und neu angeordnet werden. Wenn Sie die vollständige Benutzeroberfläche (User Interface, UI) der Anwendung aktualisieren, ist diese Funktionalität möglicherweise genau das, was Sie benötigen. Wenn Sie jedoch keinen vollständigen Layoutdurchlauf benötigen, verwenden Sie die RenderTransform -Eigenschaft, die das Layoutsystem nicht aufruft und daher in der Regel eine bessere Wahl für dieses Szenario ist.

Beispielszenarien, in denen LayoutTransform nützlich wäre, sind: Drehen von Elementen wie Menükomponenten von horizontal nach vertikal oder umgekehrt, Skalieren von Elementen (Zoomen) beim Fokus, Bereitstellen von Bearbeitungsverhalten usw.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld LayoutTransformProperty
Metadateneigenschaften auf true festgelegt AffectsMeasure

Gilt für: