C# 模板化动画:我可以在时间轴中引用父属性吗?
给定以下自定义动画类:(来自问题的一个答案): 给定以下用例:C# 模板化动画:我可以在时间轴中引用父属性吗?,c#,wpf,xaml,animation,freezable,C#,Wpf,Xaml,Animation,Freezable,给定以下自定义动画类:(来自问题的一个答案): 给定以下用例: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:C
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Components="clr-namespace:FooBar.Components"
xmlns:Animations="clr-namespace:FooBar.Classes">
<Style TargetType="{x:Type Components:MyButtons}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<!--Stuff-->
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="GotFocus">
<BeginStoryboard>
<Storyboard>
<Animations:BrushAnimation
Storyboard.TargetName="Foo"
Storyboard.TargetProperty="BarBrush"
Duration="0:0:0.3"
From="<What Do I Put Here?>"
To="<What Do I Put HERE?!>"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
根据我读到的内容,您无法将时间线与值绑定,因为Freezable
我阅读了一个可能的解决方案,但它使用了标记属性,我认为这个用例可能超出了建议的解决方案的范围
我有没有办法让时间线从我的组件中读取值?您不必一直盲目地指定
从
和到
,也许您想要从/到当前值运行动画(平滑动画)?结论-将动画移到代码后面。我喜欢这个问题。希望你能很快得到答案,或者在下面的答案中分享你的答案。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Components="clr-namespace:FooBar.Components"
xmlns:Animations="clr-namespace:FooBar.Classes">
<Style TargetType="{x:Type Components:MyButtons}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<!--Stuff-->
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="GotFocus">
<BeginStoryboard>
<Storyboard>
<Animations:BrushAnimation
Storyboard.TargetName="Foo"
Storyboard.TargetProperty="BarBrush"
Duration="0:0:0.3"
From="<What Do I Put Here?>"
To="<What Do I Put HERE?!>"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>