Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 将控件绑定到独立动画_Wpf_Animation - Fatal编程技术网

Wpf 将控件绑定到独立动画

Wpf 将控件绑定到独立动画,wpf,animation,Wpf,Animation,我是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"> <Sta

我是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的源。 就像一个独立的振荡器。 我需要一种消除slider1并直接绑定到循环的独立动画的方法。 有可能吗?
提前感谢:)

为什么不像设置Slider1值的动画那样简单地设置Slider2值的动画?还可以设置按钮宽度的动画。我不知道为什么您首先需要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,并为每个动画指定该属性。这将允许您对按钮.Width和滑块.Value使用单个动画。

谢谢您的回答:)


为什么不简单地以与设置Slider1值动画相同的方式设置Slider2值的动画

因为我需要集中动画值,以便在多个对象(而不仅仅是另一个滑块)上共享动画值,并且通过这种方式,我只能在1个位置编辑值:)

谢谢你,你的例子很适合:)