如何:在事件发生时向元素应用变换

本示例演示如何在事件发生时应用 ScaleTransform。 此处说明的概念与用于应用其他类型的转换的概念相同。 有关可用转换类型的详细信息,请参阅 Transform 类或转换概述

可以通过以下两种方式之一向元素应用转换:

  • 如果不希望转换影响布局,请使用该元素的 RenderTransform 属性

  • 如果希望转换影响布局,请使用该元素的 LayoutTransform 属性。

以下示例将 ScaleTransform 应用于按钮的 RenderTransform 属性。 当鼠标移动到按钮上方时,会将 ScaleTransformScaleXScaleY 属性设置为 2,这会导致该按钮变大。 将鼠标从按钮上移开后,ScaleXScaleY 将设置为 1,这会使按钮恢复到原来的大小。

示例

<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

另请参阅