0

我一直在编写 Windows 8 Store XAML/C# 应用程序,在 Windows Surface 设备上进行测试期间发现该应用程序在页面之间导航的速度非常慢。

该应用程序遵循 MVVM 模式并使用 SQLite。我的第一个想法是对 SQLite 的数据访问会减慢速度。

我已经剥离了我所有的 c# 代码和数据访问代码,所以我只剩下一个 XAML shell。

这样做之后,我仍然发现页面在它们之间导航时加载速度很慢。

我在一页上有大约 60 个控件(TextBoxes、Combos 和 CheckBox),所以我不会说这有什么大不了的,加载需要 1-2 秒。这听起来可能不多,但它是一个显着的暂停,并且没有任何数据访问代码。

有没有人有任何提示可以加快 XAML 页面的绘制/加载速度?

提前致谢。

4

1 回答 1

0

问题是,如果您将 Grid + ScrollViewer 作为页面的根容器,您将无法虚拟化任何东西。

但是,您可以用 GridView(默认支持滚动)替换此 Grid + ScrollViewer,并将 GridView.ItemsPanel 设置为 VirtualizingStackPanel。

这将需要对您的代码进行一些重构。

一种解决方案是将您的表单拆分为控件的“组”。例如,如果您的表单的目标是编辑用户配置文件,您可以有一个“个人信息”组和“专业信息”组。一旦你有一个组层次结构,只需将你的 GridView 绑定到这些组,virtualizingStackPanel 将完成仅显示/实例化要显示的控件的工作。

于 2013-04-19T14:46:54.843 回答