0

私は次のクラスを持っています:

public class BindableClock : DependencyObject, INotifyPropertyChanged
{
    private DoubleAnimation animation = new DoubleAnimation
    {
        From = 0.0d,
        To = 10.0d,
        Duration = new Duration(TimeSpan.FromDays(1d)),
        BeginTime = TimeSpan.Zero
    };
    private Storyboard storyboard = new Storyboard { Duration = Duration.Automatic };


    public double BogusDouble
    {
        get { return (double)GetValue(BogusDoubleProperty); }
        set { SetValue(BogusDoubleProperty, value); }
    }

    // Using a DependencyProperty as the backing store for BogusDouble.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty BogusDoubleProperty =
        DependencyProperty.Register("BogusDouble", typeof(double), typeof(BindableClock), new PropertyMetadata(0.0d, BogusDoubleChangedCallback));

    public static void BogusDoubleChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var clock = d as BindableClock;
        clock.TimeSpan = clock.storyboard.GetCurrentTime();
    }


    public TimeSpan TimeSpan {get; set;}

    public BindableClock(bool start)
    {
        Storyboard.SetTarget(animation, this);
        Storyboard.SetTargetProperty(animation, "BogusDouble");
        storyboard.Children.Add(animation);
        Value = TimeSpan.ToString(Format);
        if (start)
            storyboard.Begin();
    }

    public void Begin()
    {
        storyboard.Begin();
    }

    public void Stop()
    {
        storyboard.Stop();
    }
}

Begin()メソッドを実行した後、BogusDoubleプロパティが数回更新され、BogusDoubleChangedCallback毎回上昇することを期待しています。しかし、そうではありません。

理由はありますか?

4

1 に答える 1

0

ストーリーボードの期間は 1 日ですか? 最初の変化が起こるまでには時間がかかると思います。それとも、ここで何かが恋しいですか...?

于 2013-03-24T19:08:20.423 に答える