我是wpf的新手,我正在尝试学习一些东西。 我的问题是:我需要将我想要的所有内容绑定到循环动画......
示例:
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel>
<Slider Visibility="Hidden" Minimum="0" Maximum="100" Height="22" Margin="73,40,105,0" Name="Slider1" VerticalAlignment="Top" Value="0">
<Slider.Triggers>
<EventTrigger RoutedEvent="Slider.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="Slider1"
Storyboard.TargetProperty="Value"
From="0" To="100" Duration="0:0:5"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Slider.Triggers>
</Slider>
<Slider Minimum="0" Maximum="100" Height="22" Margin="72,98,106,0" Name="Slider2" VerticalAlignment="Top" Value="{Binding ElementName=Slider1, Path=Value}"/>
<Button Width="{Binding ElementName=Slider1, Path=Value}"></Button>
</StackPanel>
Slider1被隐藏并充当Slider2和ButtonWidth的Source。 像一个独立的振荡器。 我需要一种方法来消除slider1并直接绑定到循环的独立动画。 有可能的? 在此先感谢:)
答案 0 :(得分:1)
为什么不简单地为Slider2 Value设置动画,就像动画Slider1的值一样?您还可以为Button的宽度设置动画。我不知道你为什么首先需要Slider1。以下标记演示了如何删除Slider1并将动画用作资源:
<Window.Resources>
<DoubleAnimation x:Key="ValueAnimation"
Storyboard.TargetProperty="Value"
From="0" To="100" Duration="0:0:5"
AutoReverse="True" RepeatBehavior="Forever" />
</Window.Resources>
<StackPanel>
<Slider Minimum="0" Maximum="100" Height="22" Margin="72,98,106,0"
Name="Slider2" VerticalAlignment="Top">
<Slider.Triggers>
<EventTrigger RoutedEvent="Slider.Loaded">
<BeginStoryboard>
<Storyboard Storyboard.TargetName="Slider2">
<StaticResource ResourceKey="ValueAnimation"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Slider.Triggers>
</Slider>
<Button Width="{Binding ElementName=Slider2, Path=Value}"/>
</StackPanel>
您可以从ValueAnimation中删除 TargetProperty 并指定每个动画。这将允许您对Button.Width和Slider.Value使用单个动画。
答案 1 :(得分:0)
感谢您的回答:)
为什么不像Slider1的动画一样动画Slider2值?
因为我需要集中动画值以在多个对象(不仅是另一个滑块)上共享它,这样,我只能在一个地方编辑值:)
谢谢你的例子很合适:)