FrameworkElement.LayoutTransform Egenskap

Definition

Hämtar eller anger en grafiktransformering som ska gälla för det här elementet när layouten utförs.

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

Egenskapsvärde

Den transformering som det här elementet ska använda. Standardvärdet är Identity.

Exempel

I följande exempel visas hur du tillämpar en LayoutTransform på ett element. Exemplet skapar en instans av Button och är värd för den inom en överordnad Grid. Den använder LayoutTransform också egenskapen för att tillämpa en RotateTransformButton.


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>

Kommentarer

Till skillnad från RenderTransformkommer LayoutTransform att påverka resultatet av layouten.

Om du ställer in en transformering får du kraftfulla funktioner för skalning och rotation. Ignorerar LayoutTransform dock TranslateTransform åtgärder. Detta beror på att layoutsystembeteendet för underordnade element i en FrameworkElement automatiskt korrigerar eventuella förskjutningar till positionen för ett skalat eller roterat element i layouten och koordinatsystemet för det överordnade elementet.

LayoutTransform kan leda till sämre programprestanda om du anropar det i ett scenario som inte kräver ett fullständigt pass av layoutsystemet. När du tillämpar en LayoutTransformChildren på samlingen av Panelutlöser den ett nytt pass av layoutsystemet och tvingar alla objekt på skärmen att återskapas och ordnas om. Om du uppdaterar det fullständiga användargränssnittet (UI) kan den här funktionen vara exakt vad du behöver. Men om du inte behöver ett fullständigt layoutpass använder du RenderTransform egenskapen, som inte anropar layoutsystemet, och därför vanligtvis är ett bättre val för det här scenariot.

Exempelscenarier där LayoutTransform skulle vara användbara är: roterande element, till exempel menykomponenter från vågrätt till lodrätt eller vice versa, skalning av element (zoomning) i fokus, redigeringsbeteende osv.

Information om beroendeegenskap

Objekt Value
Identifierarfält LayoutTransformProperty
Metadataegenskaper inställda på true AffectsMeasure

Gäller för