0

「チェック済み」状態のポリゴンを含むトグルボタンを取得しました。ポリゴンを90度回転させます。

問題は、回転が完了した後、Polygon が元の角度に戻ることです。

my 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>

ポリゴンが新しい角度を維持するように、いくつかの変更を作成する必要がありますか? 前もって感謝します 。

4

1 に答える 1

0

問題は、状態自体としてではなく、遷移内にアニメーションを配置したことでした

  <VisualState x:Name="Checked">
     <Storyboard>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Angle" Storyboard.TargetName="rotateTransform">
             <EasingDoubleKeyFrame KeyTime="0:0:0.7" Value="90"/>
        </DoubleAnimationUsingKeyFrames>
      </Storyboard>
   </VisualState>
于 2013-08-12T09:01:22.017 に答える