【发布时间】:2012-01-07 16:55:39
【问题描述】:
我定义了一个简单的控件,只是一个红色的正方形,里面有一个黑色的三角形。当用户单击控件时,我想将黑色三角形旋转 180 度。我需要为旋转设置动画。这是控件(和主窗口)的 xaml -
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication1.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Window.Resources>
<ControlTemplate x:Key="ControlControlTemplate1" TargetType="{x:Type Control}">
<Grid>
<Border Background="Red"/>
<Path Grid.Row="1" x:Name="myPath" Visibility="Visible" Data="M0,0 L1,0 0.5,1 z" Stretch="Fill"
Width="80" Height="60" Fill="Black" Opacity="1"
VerticalAlignment="Center" HorizontalAlignment="Center" RenderTransformOrigin="0.5,0.4">
</Path>
</Grid>
</ControlTemplate>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Control HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" Template="{DynamicResource ControlControlTemplate1}">
</Control>
</Grid>
- 我尝试在控件上设置触发器以在按下控件时进行旋转,但似乎没有 IsPressed 属性(但由于某种原因存在 IsMouseOver 属性)。那么当 IsPressed 属性不可用时如何触发旋转?
- 如何使它成为动画旋转?
【问题讨论】:
-
IsPressed 属性适用于更高级别的控件(按钮),您需要将 OnMouseLeftDown/Up 用于网格或边框。你可以在 Expression blend 中做的动画,我会说试着找一本关于 WPF 和 Animation 的书,然后你会很快学会。
标签: c# wpf expression-blend