Condividi tramite


Procedura: Applicare una trasformazione a un elemento quando si verifica un evento

In questo esempio viene illustrato come applicare un ScaleTransform quando si verifica un evento. Il concetto illustrato di seguito è lo stesso usato per applicare altri tipi di trasformazioni. Per altre informazioni sui tipi di trasformazioni disponibili, vedere la classe Transform o Transforms Overview.

È possibile applicare una trasformazione a un elemento in uno dei due modi seguenti:

  • Se non si si desidera che la trasformazione influisca sul layout, utilizzare la proprietà RenderTransform dell'elemento.

  • Se si desidera che la trasformazione influisca sul layout, utilizzare la proprietà LayoutTransform dell'elemento.

Nell'esempio seguente viene applicato un ScaleTransform alla proprietà RenderTransform di un pulsante. Quando il mouse si sposta sul pulsante, le proprietà ScaleX e ScaleY del ScaleTransform vengono impostate su 2, che fa sì che il pulsante diventi più grande. Quando il mouse si sposta fuori dal pulsante, ScaleX e ScaleY sono impostati su 1, il che fa sì che il pulsante torni alle dimensioni originali.

Esempio

<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

Vedere anche