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.
Dient zum Abrufen oder Festlegen einer Grafiktransformation, die auf dieses Element angewendet werden soll, wenn das Layout ausgeführt wird.
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 dieses Elements sollte verwendet werden. Der Standardwert lautet Identity.
Beispiele
Das folgende Beispiel zeigt, wie ein LayoutTransform Element angewendet wird. Das Beispiel erstellt eine Instanz von Button und hostt sie innerhalb eines übergeordneten Elements Grid. Außerdem wird die LayoutTransform Eigenschaft verwendet, um eine RotateTransform auf die 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 RenderTransform, LayoutTransform wirkt sich dies auf die Ergebnisse des Layouts aus.
Das Festlegen einer Transformation bietet leistungsstarke Funktionen zum Skalieren und Drehen. LayoutTransform Ignoriert TranslateTransform jedoch Vorgänge. Dies liegt daran, dass das Layoutsystemverhalten für untergeordnete Elemente eines FrameworkElement automatisch korrigierten 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, für das kein vollständiger Durchlauf durch das Layoutsystem erforderlich ist. Wenn Sie eine LayoutTransform Auflistung Children der PanelAuflistung anwenden, löst sie einen neuen Durchlauf durch das Layoutsystem aus und erzwingt, dass alle Bildschirmobjekte neu angeordnet und neu angeordnet werden. Wenn Sie die vollständige Benutzeroberfläche 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 ist daher in der Regel eine bessere Wahl für dieses Szenario.
Beispielszenarien, in denen LayoutTransform hilfreich wäre: Drehen von Elementen wie Menükomponenten von horizontal zu vertikal oder umgekehrt, Skalierungselemente (Zoomen) im Fokus, Bereitstellen des Bearbeitungsverhaltens usw.
Informationen zur Abhängigkeitseigenschaft
| Element | Wert |
|---|---|
| Bezeichnerfeld | LayoutTransformProperty |
Auf Metadateneigenschaften festgelegt true |
AffectsMeasure |