3

我正在使用 WPF 构建一个应用程序,我有 2 个动画我想在它们之间有延迟。但是当我尝试在

MainWindow_Loaded(object sender, RoutedEventArgs e)

事件,它只是在加载时延迟,我错过了第一个动画。

有什么帮助吗?

4

3 回答 3

2

也许值得尝试的是使用 Dispatcher 对象调用带有动画的代码。通过设置调度程序优先级,您可以推迟执行,直到所有数据绑定(甚至异步)完成。

   // Schedule the update function in the UI thread.
   Dispatcher.BeginInvoke(
      System.Windows.Threading.DispatcherPriority.Loaded, ...);

如果这不起作用,请尝试更改优先级 - 优先级越低,您的操作将被调用。

于 2012-02-10T18:10:18.523 回答
0

不幸的是,没有内置通知通知您加载(绑定渲染)已完成。所以应该想出自己的解决方案。

一个人可以MainWindow_Loaded写这样的东西(伪代码):

new Thread(new ThreadStart(new Action(() =>
{
      Sleep(2000); // a couple of seconds sleep 
      StartAnimation(); 

}))).Start();

希望这可以帮助。

于 2012-02-10T16:42:29.580 回答
0

我发现 Window.ContentRendered(或 Me.ContentRendered)成功了,可以找出窗口何时完成加载。

看到这个答案

于 2012-08-03T16:22:05.930 回答