0

我在 WPF 中开发了一个用于制图的控件,但是在调整控件大小时出现了性能问题。由于我不知道如何使性能更好,所以我现在只是在增大时关闭了渲染,但这看起来不太好。所以我的问题是是否可以在调整大小期间将控件“冻结”为图像以使其看起来平滑。

编辑:该控件基本上由一个滚动查看器组成,其中包含一个自定义虚拟化面板。scrollviewer 只能水平滚动。滚动查看器中的虚拟化面板包含所有其他项目,例如曲线、标签、网格等。

4

2 回答 2

0

这是一个很好的建议列表:

解决 WPF 应用程序的性能问题

另外尝试:

ScrollViewer 上的 IsDeferredScrollingEnabled="true"。

仅当您有 ScrollViewer.CanContentScroll=true 时才启用 UI 虚拟化

WPF 中的 ListBox、VirtualizingStackPanel 和平滑滚动

允许基于像素的滚动并进行虚拟化的 hacky 解决方法:

带有 ListBox 的 WPF ListBox - UI 虚拟化和滚动

UI 虚拟化的一些细节:

http://bea.stollnitz.com/blog/?p=338

于 2012-07-11T23:44:29.210 回答
0

这个答案显然为时已晚,但可能对未来的探索者有所帮助!

如果您想在繁忙的控件上平滑地调整内容的大小,则此答案可能无效。但是,如果您想在重新调整大小期间解决口吃问题,那么在重新调整大小开始之前执行此操作。

  1. 在图像中捕获当前屏幕内容
  2. 将上面图像的 Recangle 叠加层作为背景。
  3. 将控件的可见性设置为隐藏/折叠

当重新调整大小完成时。

  1. 将控件的可见性设置为可见
  2. 等待布局改变(即控件布局)
  3. 现在隐藏矩形覆盖。

这对于控件来说效果很好,但是如果您调整窗口大小,它仍然会导致卡顿。

于 2015-08-24T13:14:13.107 回答