更改动画中的边框背景颜色

Change Border background color in animation

我是XAML区的新手,只是想了解一下VSM。当我在 StoryBoard 中添加内容时,总是会提示相同的错误。如下:

无法解析指定对象的 TargetProperty Background.Color。

<phone:PhoneApplicationPage.Resources>
    <ControlTemplate x:Key="ButtonControlTemplate1" TargetType="Button">
        <Border 
            BorderThickness="{TemplateBinding BorderThickness}"
            Height="{TemplateBinding Height}"
            Width="{TemplateBinding Width}"
            Margin="{TemplateBinding Margin}"
            Padding="{TemplateBinding Padding}"
            Background="{TemplateBinding Background}"
            BorderBrush="{TemplateBinding BorderBrush}"
            Name="btnBorder">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal"/>
                    <VisualState x:Name="MouseOver">
                        <Storyboard>
                            <ColorAnimation Duration="0" 
                                            To="Blue"
                                            Storyboard.TargetName="btnBorder"
                                            Storyboard.TargetProperty="Background.Color"
                                            />
                        </Storyboard>
                    </VisualState>
                    <VisualState x:Name="Pressed"/>
                    <VisualState x:Name="Disabled"/>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
            <ContentPresenter 
                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" >
            </ContentPresenter>
        </Border>
    </ControlTemplate>
</phone:PhoneApplicationPage.Resources>

<Button 
            x:Name="btnSubmit" 
            Grid.Row="3" 
            Grid.Column="0" 
            Grid.ColumnSpan="2" 
            Content="Login" 
            IsEnabled="False" 
            Click="btnSubmit_Click" 
            Margin="0" 
            BorderThickness="2"
            BorderBrush="White"
            Background="Aqua"
            Padding="15" 
            Template="{StaticResource ButtonControlTemplate1}"
            />

为什么以及如何修复它,谢谢!

您的视觉状态应该是 PointerOver 而不是 MouseOver

即便如此 ColorAnimation 对我没有任何作用。然而,这确实:

<VisualState x:Name="PointerOver">
    <Storyboard>
        <ObjectAnimationUsingKeyFrames
            Storyboard.TargetName="btnBorder"
            Storyboard.TargetProperty="Background">
            <DiscreteObjectKeyFrame KeyTime="0" Value="Blue" />
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
</VisualState>

注意目标 属性 是 Background 而不是 Background.Color