FrameworkElement.LayoutTransform Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |