首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColorAnimation不触发

ColorAnimation不触发
EN

Stack Overflow用户
提问于 2016-04-28 04:06:59
回答 1查看 32关注 0票数 1

我试图动画我的模板的LinearGradientBrush。如果执行了单击操作,我想更改画布背景的颜色。“按下”事件会被解雇,但什么也不会发生。

代码语言:javascript
复制
        <ControlTemplate x:Key="ButtonTemplate" TargetType="Button">
        <Grid>
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal"/>
                    <VisualState x:Name="MouseOver" />
                    <VisualState x:Name="Pressed">
                        <Storyboard AutoReverse="True" Duration="0:0:0.5">
                            <ColorAnimation Storyboard.TargetName="Form" Storyboard.TargetProperty="(Canvas.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" To="Red" Duration="0:0:0.5" />
                            <ColorAnimation Storyboard.TargetName="Form" Storyboard.TargetProperty="(Canvas.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" From="Black" To="Red" Duration="0:0:0.5" />
                        </Storyboard>
                    </VisualState>
                    <VisualState x:Name="Disabled" />
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>

            <Canvas Name="Form" Height="35">
                <Canvas.Background>
                    <LinearGradientBrush EndPoint="0.5,0.5" StartPoint="0.5,0">
                        <GradientStop Color="#FF007FEA" Offset="0"/>
                        <GradientStop Color="#FF004580" Offset="1"/>
                    </LinearGradientBrush>
                </Canvas.Background>
            </Canvas>

            <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" />
        </Grid>
    </ControlTemplate>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-28 05:15:03

我在那里看到了一个x:Key。如果这只是Button样式模板中的一个片段,那么只需删除那个x:Key,但是如果这个ControlTemplate被用作资源,那么您只是点击了错误的TargetProperty,因为我非常肯定画布是Panel.,您可以替换Storyboard.TargetProperty并在动画中丢失From attrib,如下面工作ColorAnimation中所示。

代码语言:javascript
复制
<ColorAnimation Duration="0" To="Red" 
                Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[0].(GradientStop.Color)" 
                Storyboard.TargetName="Form"/>
<ColorAnimation Duration="0" To="Black" 
                Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)" 
                Storyboard.TargetName="Form"/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36905054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档