我有一个关于 WPF 的问题。我全部用代码(C#)编写,没有 XAML。
小程序说明:我从一个手机传感器变成价值观。在 wpf 程序中,我使用这些值在画布上的椭圆处制作不同的动画。
我在服务器类中有一个 http 服务器,它获取值并将其写入变量。在我的 MainWindow() 中,我调用它,它为我的 DoubleAnimation 带来了 Duration:
public MainWindow()
{
InitializeComponent();
Canvas myPanel = new Canvas();
...
Server server = new Server();
server.GetData();
float xxx ;
xxx = server.duration;
...
GetData() - 向服务器发出 http 请求,将响应写入可变持续时间。比我通过 server.duration 得到它;
它工作完美。
这是我的双重动画:
DoubleAnimation anim = new DoubleAnimation();
anim.Duration = new Duration(TimeSpan.FromSeconds(xxx));
anim.From = 10;
anim.To = 0;
anim.AutoReverse = true;
anim.RepeatBehavior = RepeatBehavior.Forever;
在 MainWindow() 结束时,我将带有动画的对象添加到 Canvas:
myObject.BeginAnimation(Ellipse.OpacityProperty, anim);
myPanel.Children.Add(myObject);
this.Content = myPanel;
它可以工作,但是当服务器带来新的持续时间值时,我需要更新我的持续时间。
问题:当我成为新的持续时间值时,如何使我的 DoubleAnimation 发生变化?
换句话说问题:如何循环 server.GetData(); 更新我的持续时间值?
换句话说问题2: Canvas 是否自动更新自己?如果是,它会在 MainWindow() 中调用自动 server.GetData()?
我将非常感谢任何示例和描述!谢谢!