• WPF 关于动画的束缚设置


      WPF中如果我设置完动画,再通过其他的设置来修改动画中的属性时,那这些属性就被锁住了,这时这个属性是不能够设置的。有很多种方法可以来把这个动画解锁。我做了一个小的Demo来设置这个值。

        <DockPanel LastChildFill="True">
            <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Center">
                <Button Name="cmdStart" Height="50" Width="100" Margin="10" Click="Button_Click">Start</Button>
                <Button Height="50" Width="100" Margin="10" Click="ButtonSet_Click">Set</Button>
                <Button Height="50" Width="100" Margin="10" Click="ButtonStop_Click">Stop</Button>
            </StackPanel>
            <Label DockPanel.Dock="Top" Name="label" HorizontalContentAlignment="Center" Content="{Binding ElementName=button,Path=Width}" Width="200" Height="200" FontSize="50"/>
            <Button Name="button" Width="0"/>
        </DockPanel>
        public partial class MainWindow : Window {
            PauseStoryboard story = new PauseStoryboard();
            DoubleAnimation animation = new DoubleAnimation();
            public MainWindow() {
                InitializeComponent();
            }
    
            private void Button_Click(object sender, RoutedEventArgs e) {
                animation.From = 0;
                animation.To = 100;
                animation.Duration = TimeSpan.FromSeconds(5);
                button.BeginAnimation(Button.WidthProperty, animation);
            }
    
            private void ButtonStop_Click(object sender, RoutedEventArgs e) {
                var temp = (double)button.GetValue(Button.WidthProperty);
                button.BeginAnimation(Button.WidthProperty, null);
                button.Width = temp;
            }
    
            private void ButtonSet_Click(object sender, RoutedEventArgs e) {
                button.Width = 20;
            }
        }

      由上面的例子可以看到当我开始这个动画后,如果你直接点击Set的话这个属性是不能设置的。当你点击Stop时,如果你直接只用上这句话:

       button.BeginAnimation(Button.WidthProperty, null);

      那么设置将停止时,他的动画会回到原点,这样也可以继续设置值。而我上面的这个方法是使动画还在原来的位置停住,继而继续设置值。这两种根据个人的需要来选择。这个只是其中的一种。还有许多方法来设置值。可以参考下面这个blog,里面把所有的可能用到的停止方法都用到了:http://www.cnblogs.com/alamiye010/archive/2009/08/26/1554539.html

  • 相关阅读:
    LINQ表达式预备讲课
    开发中必须安装的软件
    jquery判断单选按钮radio是否选中的方法
    JQuery判断radio(单选框)是否选中和获取选中值方法总结
    jquery $.each 和for怎么跳出循环终止本次循环
    ECharts 3.0 初学感想及学习中遇到的瓶颈
    js 日期时间大小比较
    Vue资料-简介-旋之华
    vue 引用 vue-resource步骤 (遇错排解)
    vue-resource和axios的简单使用方法总结
  • 原文地址:https://www.cnblogs.com/socialdk/p/2676675.html
Copyright © 2020-2023  润新知