【问题标题】:Is there are any loading speed difference between Page and Window in WPF?WPF 中的 Page 和 Window 之间是否存在加载速度差异?
【发布时间】:2012-03-01 06:21:51
【问题描述】:

我想在 WPF 的 DataGrid 中加载 10 000 个项目。使用Window 控件时,数据加载速度比使用Page 控件时要快。谁能解释一下原因?

【问题讨论】:

  • 为什么不创建一个简单的测试?
  • 我认为您可以使用分析工具(dotTrace 或 ANTS)来查看发生了什么以及导致差异的原因。
  • 您需要修改还是添加?如果不是,您将使用 ListView GridView 获得更好的性能。我会查看代码,看看是否有什么不同。
  • 您的页面托管在什么位置?可能是由于 WPF 试图确定网格/列的大小。你是自动生成的列吗?如果已定义,是否指定了列大小?

标签: wpf wpfdatagrid


【解决方案1】:

页面旨在用于导航应用程序(通常与 后退和前进按钮,例如IE浏览器)。页面必须是 托管在 NavigationWindow 或 Frame 中

Windows 只是普通的 WPF 应用程序 Windows [lnk]

这本质上是一个XBAP vs ClickOnce 问题。页面中的任何内容都是针对 WPF 在浏览器窗口中允许执行的操作进行编译和限制的。这排除了 WPF Windows 可以摆脱的许多低级计算机操作,因为它们被编译为从桌面运行。窗口应用程序可以完全访问系统资源。

请记住,当您使用 Page 控件时,即使在调试期间,生成的代码也是在考虑浏览器部署的情况下构建的。所有 XBAP 都在部分信任的限制性安全沙箱中运行。换句话说,他们可以使用某些 .NET 库,但禁止访问其他库。 [ref] 其中一些 .NET 库将负责优化,因此无法在浏览器部署中实现。

因此,在 Windows 中构建的应用程序能够比在 Pages 中构建的应用程序更快地执行大多数操作是完全合理的。

【讨论】:

    猜你喜欢
    • 2010-10-14
    • 2015-04-19
    • 1970-01-01
    • 2017-06-19
    • 2021-11-06
    • 2016-07-16
    • 2017-02-06
    • 2012-05-11
    • 2010-09-20
    相关资源
    最近更新 更多