У меня есть DoubleAnimation, которую я хочу связать со свойствами From, To и Duration, чтобы они плавно менялись.
Привязка From и To прекрасно работает, плавно меняет их, но изменения Duration просто игнорируются.
Для отладки я сделал кнопку, которая при нажатии вызывает методы Stop и Begin содержащей StoryBoard, и анимация начиналась с начала с правильной продолжительностью. Также я проверил и увидел, что свойство Duration анимации фактически обновляется каждый раз, поэтому анимация просто игнорирует это изменение. (В отличие от «От» и «К», которые действительно реагируют плавно.)
Пробовал то же самое в WPF и получил те же результаты, вот фрагмент:
<Canvas>
<Canvas.Triggers>
<EventTrigger RoutedEvent="Canvas.Loaded">
<BeginStoryboard>
<Storyboard x:Name="Story">
<DoubleAnimation x:Name="Anime"
Duration="{Binding Duration}"
RepeatBehavior="Forever"
Storyboard.TargetName="Text1"
Storyboard.TargetProperty="(Canvas.Left)"
From="0"
To="400"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
<TextBlock Text="Hello" Name="Text1"/>
</Canvas>
Я был бы очень признателен за объяснение, почему это не работает, и любые обходные пути, которые позволили бы привязке работать с плавным переходом.
Кроме того, фактическая моя конечная цель состоит в том, чтобы TextBlock двигался с постоянной скоростью, несмотря на изменения в From и To. Так что, если есть другой способ достичь этого, было бы еще лучше.
Спасибо.