Compartir vía


FrameworkElement.LayoutTransform Propiedad

Definición

Obtiene o establece una transformación gráfica que debe aplicarse a este elemento cuando se realiza el diseño.

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

Valor de propiedad

Transform

Transformación que este elemento debe utilizar. De manera predeterminada, es Identity.

Ejemplos

En el ejemplo siguiente se muestra cómo aplicar un LayoutTransform objeto a un elemento . En el ejemplo se crea una instancia de y se hospeda dentro de Button un elemento primario Grid. También usa la LayoutTransform propiedad para aplicar un RotateTransform objeto a .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>

Comentarios

A diferencia RenderTransformde , LayoutTransform afectará a los resultados del diseño.

Establecer una transformación proporciona funcionalidades eficaces de escalado y rotación. Sin embargo, LayoutTransform omite TranslateTransform las operaciones. Esto se debe a que el comportamiento del sistema de diseño para los elementos secundarios de un FrameworkElement elemento secundario corrige automáticamente los desplazamientos a la posición de un elemento escalado o girado en el sistema de diseño y coordenadas del elemento primario.

LayoutTransform puede provocar un rendimiento deficiente de la aplicación si lo invoca en un escenario que no requiere un pase completo por el sistema de diseño. Cuando se aplica a LayoutTransform la Children colección de Panel, desencadena un nuevo paso por el sistema de diseño y obliga a todos los objetos en pantalla a reasignarse y reorganizarse. Si va a actualizar la interfaz de usuario de la aplicación completa, esta funcionalidad podría ser exactamente lo que necesita. Sin embargo, si no necesita un pase de diseño completo, use la RenderTransform propiedad , que no invoca el sistema de diseño y, por lo tanto, suele ser una mejor opción para este escenario.

Entre los escenarios de ejemplo en LayoutTransform los que sería útil se incluyen los elementos giratorios, como los componentes de menú de horizontal a vertical o viceversa, los elementos de escalado (acercar) en el foco, lo que proporciona un comportamiento de edición, etc.

Información sobre propiedades de dependencia

Campo identificador LayoutTransformProperty
Propiedades de metadatos establecidas en true AffectsMeasure

Se aplica a