gpt4 book ai didi

WinForm应用程序中的WPF预编译资源?

转载 作者:行者123 更新时间:2023-12-04 16:47:33 25 4
gpt4 key购买 nike

我正在开发一个作为 WinForm 开始的应用程序,但它现在正在使用带有 UI 的 WPF 窗口。交互效果很好,但是当 WPF 窗口第一次显示时,它们需要很长时间(大约 1-3 秒)才能显示出来。这么久以至于有些人想知道应用程序是否已经崩溃(直到内容显示)。第二次调用相同的窗口时,它们会很快出现。我需要它们在第一次出现时迅速出现。

我正在使用位于资源文件夹中的 XAML 样式和控件模板。在 WPF 窗口的 XAML 中,我将它们合并到 Windows 资源字典中。那些(在 VS 2010 中)的构建操作需要设置为“资源”。
我最好将它们保存在单独的文件中以便于维护。
据我了解,如果构建操作是“Page”,XAML 将被预编译并且加载速度应该更快,但是如果我将它设置为 Page,我无法将它们合并到资源字典中。有没有办法解决这个问题?

我对 WPF 的这一部分还很陌生,到目前为止我的互联网搜索还没有成功。

需要明确的是:我不是在谈论嵌入在 WinForms 中的 WPF 控件。我说的是从 WinForm 上下文产生的完全独立的 WPF 窗口。

有没有办法预编译整个应用程序或至少所有 XAML(它都是静态的,没有动态 XAML)?

提前致谢!

编辑:无论如何,用户界面都不重。有问题的按钮有 5 到 20 个按钮和通常的容器(基本上是带有 1 或 2 个堆栈面板的网格)。

更新:
我尝试使用“NGEN install appname”进行预编译 - 对 WPF 窗口加载没有影响。

我将所有资源和模板都包含在 window.xaml 中 - 无效。
(window.xaml 是预编译的)

我在这里发现了这篇关于在应用程序加载时预抖动的非常有趣的文章:

http://www.codeproject.com/KB/dotnet/pre_JIT.aspx
(我使用了'ittay ophir'建议的改进)

  • 再次:对 WPF 窗口加载没有影响...

  • 加载时间在第一次加载时不会改变,但在所有连续加载(加载时间为 20 毫秒或更短)时显着减少。

    这到底是怎么回事?

    最佳答案

    如何使用 XamlReader.LoadAsync 异步加载 XAML方法 ?

    关于WinForm应用程序中的WPF预编译资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5347209/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com