Udostępnij przez


Jak zastosować przekształcenie do elementu w przypadku wystąpienia zdarzenia

W tym przykładzie pokazano, jak zastosować ScaleTransform w przypadku wystąpienia zdarzenia. Przedstawiona tutaj koncepcja jest taka sama, jak w przypadku stosowania innych typów przekształceń. Aby uzyskać więcej informacji na temat dostępnych typów przekształceń, zobacz klasę Transform lub Transforms Overview.

Przekształcenie można zastosować do elementu na jeden z następujących dwóch sposobów:

  • Jeśli nie chcesz, aby przekształcenie miało wpływ na układ, użyj właściwości RenderTransform elementu.

  • Jeśli chcesz, aby przekształcenie miało wpływ na układ, użyj właściwości LayoutTransform elementu.

Poniższy przykład stosuje ScaleTransform do właściwości RenderTransform przycisku. Gdy kursor myszy przesuwa się nad przyciskiem, właściwości ScaleX i ScaleY elementu ScaleTransform są ustawione na 2, powodując, że przycisk staje się większy. Gdy mysz opuszcza przycisk, ScaleX i ScaleY są ustawione na 1, co powoduje, że przycisk wraca do oryginalnego rozmiaru.

Przykład

<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

Zobacz także