iv'e得到一个ToggleButton,其中包含"Checked“状态下的多边形,我将多边形旋转90度。
问题是,在旋转完成后,多边形会弹回它的初始角度。
我的ToggleButton:(部分模板)
<ControlTemplate TargetType="{x:Type ToggleButton}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Unfocused"/>
<VisualState x:Name="Focused"/>
</VisualStateGroup>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="00:00:00.3"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="MouseOver"/>
<VisualState x:Name="Normal"/>
<VisualState x:Name="Pressed"/>
<VisualState x:Name="Disabled"/>
</VisualStateGroup>
<VisualStateGroup x:Name="CheckStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0" To="Checked">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="regularPolygon">
<EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="90" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualTransition>
<VisualState x:Name="Indeterminate"/>
<VisualState x:Name="Checked"/>
<VisualState x:Name="Unchecked"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Polygon x:Name="regularPolygon"
Points="5,10 10,5 5,0"
RenderTransformOrigin="0.5,0.5"
Stretch="Fill"
UseLayoutRounding="False">
<Polygon.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform />
<TranslateTransform/>
</TransformGroup>
</Polygon.RenderTransform>
</Polygon>
</ControlTemplate>我需要创建一些修改,这样多边形保持它的新角度吗?提前谢谢。
发布于 2013-08-12 09:01:22
问题是,我把动画放在了一个过渡中,而不是状态本身。
<VisualState x:Name="Checked">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Angle" Storyboard.TargetName="rotateTransform">
<EasingDoubleKeyFrame KeyTime="0:0:0.7" Value="90"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>https://stackoverflow.com/questions/18182585
复制相似问题