5

ControlTemplate作成したforで問題が発生しToggleButtonました。

ボタンがChecked、の場合、aColorAnimationがトリガーされ、コントロールの背景の色が変わります。ただし、ユーザーがMouseOver状態に入ると、ボタンの背景にも影響を与える別のアニメーションがトリガーされます。

マウスがその状態でなくなるとMouseOver、コントロールはその状態にある間は本来あるべき色に戻りませんCheckedMouseOver状態がトリガーされたときにこれが持続しない理由はわかりません。

私のVisualStateManager部分はControlTemplateこのように見えます:

<VisualStateManger.VisualStateGroups>
    <VisualStateGroup x:Name="CommonStates">
        <VisualState x:Name="Normal"></VisualState>
        <VisualState x:Name="MouseOver">
            <Storyboard>
                <ColorAnimation Storyboard.TargetName="BackgroundBorder"
                    Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
                    To="Gold" Duration="0:0:0.3" />
            </Storyboard>
        </VisualState>
    </VisualStateGroup>
    <VisualStateGroup x:Name="CheckedStates">
        <VisualState x:Name="Checked">
            <Storyboard>
                <ColorAnimation Storyboard.TargetName="BackgroundBorder"
                    Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
                    To="PaleGoldenrod" Duration="0:0:0.3" />
            </Storyboard>
        </VisualState>
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>
4

1 に答える 1

3

Gridを囲むを作成する必要があった問題の回避策Border

ではCommonStatesにアニメーションを変更し、Border.BackgroundではCheckedStatesにアニメーションを変更しましたGrid.Background

私が探していた視覚効果を実現します。

于 2012-09-26T17:53:57.993 に答える