WPF UI建议?

4
我有一个带有一些控件的用户界面,然后在中间有6个重叠的网格。我使用这些网格作为“页面”,当用户浏览“页面”时,我通过Visible.Hidden和Visible.Visible循环来显示正确的“页面”。
我注意到,在添加更多的网格时,应用程序开始变得缓慢(非常缓慢)。这不是真正的问题,直到我在最后一页添加了6张图片。自从那以后,即使在我的(比平均水平更快的)电脑上,应用程序也非常缓慢。
你有什么建议可以让我实现相同的外观和感觉,但使用更有效的方法吗?
提前致谢。
3个回答

2
总的来说,像你现在拥有的一堆重叠的控件并不是一个好主意,因为正如你所注意到的那样,会有性能问题。你应该尽量减少应用程序中同时存在的控件数量。
如果你只有有限数量的页面,可以使用TabControl
如果你有大量或动态的页面,请考虑使用FramesPages
第三个选项是使用一个托管“外壳”控件和一个ContentPresenter。然后,每当你想要导航到另一个页面时,只需将控件的Content设置为你的页面视图的新实例。
你的观点与数据模型是分离的,对吗?如果不是,考虑使用MVVM模式。这将允许您拥有持久的数据,无论哪个视图正在显示(例如,动态创建和销毁视图不会破坏您的数据)。

TabControl似乎是我需要使用的控件。但是,我需要背景透明,实际的选项卡也要不可见。有什么想法吗? - user273198
1
如果您使用自定义模板来控制选项卡,则可以将选项卡控件的样式设置为任何您想要的样式。我还要注意到,我以前在选项卡控件上遇到了一些性能问题。我建议采用emddudley的第三个选项,即使用ContentPresenter并设置内容(组合UI)。 - Chris Nicol

1
我建议您使用WPF Frame和Page类,而不是当前的架构。与任何演示框架一样,随着您向场景图添加更多控件,性能会下降。

0

如何使用自定义模板创建TabControl?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接