Partilhar via


Como: Aplicar uma transformação a um elemento quando ocorre um evento

Este exemplo mostra como aplicar um ScaleTransform quando ocorre um evento. O conceito que é mostrado aqui é o mesmo que você usa para aplicar outros tipos de transformações. Para obter mais informações sobre os tipos de transformações disponíveis, consulte a classe Transform ou Visão geral das transformações.

Você pode aplicar uma transformação a um elemento de uma destas duas maneiras:

  • Se você não quiser que a transformação afete o layout, use a propriedade RenderTransform do elemento .

  • Se desejar que a transformação afete o layout, use a propriedade LayoutTransform do elemento.

O exemplo a seguir aplica um ScaleTransform à propriedade RenderTransform de um botão. Quando o mouse se move sobre o botão, as propriedades ScaleX e ScaleY do ScaleTransform são definidas como 2, o que faz com que o botão se torne maior. Quando o mouse se move para fora do botão, ScaleX e ScaleY são definidos como 1, o que faz com que o botão retorne ao seu tamanho original.

Exemplo

<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

Ver também