【问题标题】:WPF window pre-loadingWPF窗口预加载
【发布时间】:2010-12-22 05:59:11
【问题描述】:

当在我的全屏 WPF 应用程序中切换窗口时,如果这是第一次显示屏幕,则在显示窗口之前显示器会暂时变黑。这仅在第一次显示窗口时发生。有没有办法预先加载每个窗口,这样就不会发生这种情况?

这是我尝试过的:

myWindow.Show();
myWindow.Hide();

但有可见的闪烁。

然后我尝试了:

myWindow.Height = 0;
myWindow.Width = 0;
myWindow.WindowState = WindowState.Normal;
myWindow.Show();
myWindow.Hide();
myWindow.Height = Screen.PrimaryScreen.Bounds.Height;
myWindow.Width = Screen.PrimaryScreen.Bounds.Width;
myWindow.WindowState = WindowState.Maximized;

没有闪烁,但是当我随后显示窗口时,它以奇怪的状态显示了一瞬间,然后更新以正确显示。

【问题讨论】:

  • 我只想补充一点,这不仅仅是全屏应用的问题。打开包含很多视觉效果的新窗口时,我遇到了同样的问题。问题在于创建数千个不同的包装器,例如对于项目控件中的项目,首次布局构建和渲染。第一次切换到包含大量控件的选项卡时,可能会出现同样的问题。因此,如果有人知道如何预加载控件,那就太好了。

标签: c# wpf window


【解决方案1】:

显然这个人问了一个更清楚的问题。

How can I avoid flicker in a WPF fullscreen app?

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。最后,我创建了一个启动画面,并在一个单独的线程中将控件加载到启动画面后面。这会停止闪烁,但会使初始应用加载时间更长。

    【讨论】:

    • 你是怎么做到的?实例化启动画面中的所有窗口而不显示它们?
    猜你喜欢
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 2014-02-02
    • 2013-01-26
    • 2010-11-26
    相关资源
    最近更新 更多