Compartir vía


Cómo: Aplicar una transformación a un elemento cuando se provoca un evento

En este ejemplo se muestra cómo aplicar ScaleTransform cuando se produce un evento. El concepto que se muestra aquí es el mismo que se utiliza para aplicar otros tipos de transformaciones. Para más información sobre los tipos de transformaciones disponibles, vea la clase Transform o la Información general sobre transformaciones.

Puede aplicar una transformación a un elemento de cualquiera de estas dos maneras:

  • Si no quiere que la transformación afecte al diseño, use la propiedad RenderTransform del elemento.

  • Si quiere que la transformación afecte al diseño, use la propiedad LayoutTransform del elemento.

En el siguiente ejemplo se aplica ScaleTransform a la propiedad RenderTransform de un botón. Cuando el mouse pasa sobre el botón, las propiedades ScaleX y ScaleY de ScaleTransform se establecen en 2, lo que causa que el botón se haga más grande. Cuando el mouse ya no está sobre el botón, ScaleX y ScaleY se establecen en 1, lo que causa que el botón vuelva a su tamaño original.

Ejemplo

<Page  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="WCSample.TransformExample"
  WindowTitle="Transform on Mouse Enter Example">
  <Canvas Width="400" Height="400">

    <Button Name="Button1" MouseEnter="Enter" MouseLeave="Leave">
      <Button.RenderTransform>
        <ScaleTransform x:Name="myScaleTransform" ScaleX="1" ScaleY="1" />
      </Button.RenderTransform>
      Button
    </Button>


  </Canvas>
</Page>
public partial class TransformExample : Page {
  private void Enter(object sender, MouseEventArgs args) {
      myScaleTransform.ScaleX = 2;
      myScaleTransform.ScaleY = 2;
  }

  private void Leave(object sender, MouseEventArgs args) {
      myScaleTransform.ScaleX = 1;
      myScaleTransform.ScaleY = 1;
  }
}
Partial Public Class TransformExample
    Inherits Page
    Private Sub Enter(ByVal sender As Object, ByVal args As System.Windows.Input.MouseEventArgs)
        myScaleTransform.ScaleX = 2
        myScaleTransform.ScaleY = 2
    End Sub

    Private Sub Leave(ByVal sender As Object, ByVal e As System.Windows.Input.MouseEventArgs)
        myScaleTransform.ScaleX = 1
        myScaleTransform.ScaleY = 1
    End Sub
End Class

Vea también