gpt4 book ai didi

animation - 是否可以在 Silverlight 的 Storyboard 中使用 TemplateBinding?

转载 作者:行者123 更新时间:2023-12-02 22:24:50 25 4
gpt4 key购买 nike

我正在 Silverlight 中构建一个自定义控件,并且希望当 DependencyProperty 属性发生更改时,其中一个字段能够以动画形式呈现该值。更具体地说,我的控制模板中有一个特定的项目,每当背景颜色改变时,我想将其动画化为背景的颜色。所以,我所拥有的是:

<ControlTemplate TargetType="local:MyType">
<Grid x:Name="PART_RootElement">
<Grid.Resources>
<Storyboard x:Name="PART_FillAnimation">
<ColorAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="PART_MainPath"
Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
<EasingColorKeyFrame
x:Name="PATH_FillKeyframe"
KeyTime="00:00:01"
Value="{TemplateBinding Background}"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</Grid.Resources>
<!-- the rest of the template -->

我在自定义控制代码中触发动画,但是当动画开始时,值看起来并没有更新。我只是想知道我是否遗漏了某些内容,或者是否有可能将 TemplateBinding 应用于我的 ControlTemplate 中的资源。

(我目前正在使用手动将背景分配给 EasingColorKeyFrame 值的解决方法,但 TemplateBinding 解决方案会干净得多。)

最佳答案

看看 Expression Blend Samples 作为您问题的可能解决方案。您可以在 ControlTemplate 中使用许多交互类来创建您想要的效果。文档不是很好,但是对象浏览器中的描述应该为您提供更多线索:)

例如,我有一个包含 ControlStoryboardAction 行为的 ListBox ItemTemplate。此行为的触发器是 DataTrigger,当 DataContext 字段包含特定值时会触发该触发器。 (在我的情况下,当严重性==“高”)触发器然后在 ItemTemplate 中播放 Storyboard。

<i:Interaction.Triggers>                                
<is:DataTrigger Binding="{Binding Severity, Mode=OneWay}" Value="High">
<im:ControlStoryboardAction Storyboard="{StaticResource flashLight}" IsEnabled="True" />
</is:DataTrigger>

引用了以下命名空间:

  1. <i: - 系统.Windows.交互性
  2. <is: - Expression.Samples.Interactivity(可从上面的链接获取。我使用的是 2009 年 7 月发布的 SL3)
  3. <im: - Microsoft.Expression.Interactivity.Media

关于animation - 是否可以在 Silverlight 的 Storyboard 中使用 TemplateBinding?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1336689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com