gpt4 book ai didi

不使用名称的子项的 WPF 动画属性

转载 作者:行者123 更新时间:2023-12-04 14:32:53 24 4
gpt4 key购买 nike

我正在尝试在 XAML 中创建一个 Storyboard,它为引发事件的元素的子元素之一的属性设置动画。但是我似乎无法在不使用 Names 的情况下让它工作,这是我在这种特定情况下无法真正做到的。

我基本上是在尝试这样的事情(当然简化了很多):

   <Canvas>
<Canvas.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Children[0].(Canvas.Left)" From="0" To="400" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Canvas.Triggers>

<Button Canvas.Left="20" Canvas.Top="20">A</Button>
<Button Canvas.Left="40" Canvas.Top="20">B</Button>
</Canvas>

关于如何实现这一目标的任何想法?

最佳答案

前提是UIElement您正在索引动画存在(即已经存在于 Canvas 上),那么您可以执行以下操作:

<Canvas x:Name="MyCanvas">
<Button x:Name="btn" Canvas.Left="20" Canvas.Top="20">A</Button>
<Button Canvas.Left="40" Canvas.Top="20">B</Button>
<Canvas.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.Target="{Binding ElementName=MyCanvas, Path=Children[0]}"
Storyboard.TargetProperty="(Canvas.Left)" From="0" To="400" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Canvas.Triggers>
</Canvas>

请注意我是如何将按钮的添加移到 Trigger 上方的。 .如果按钮低于 Trigger就像您的问题一样,尝试访问 Children[0]会抛出 ArgumentOutOfRangeException因为此时没有 child 。

关于不使用名称的子项的 WPF 动画属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932824/

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