代码之家  ›  专栏  ›  技术社区  ›  unclepaul84

WPF渲染性能

  •  0
  • unclepaul84  · 技术社区  · 16 年前

    DataTable CheckBox EditBox 复选框 要生成的es超过200个。我看到一些渲染性能问题。表单立即加载所有静态控件(文本框、下拉列表),然后几秒钟后加载 复选框 出现了一些小问题。

    有什么想法吗?

    谢谢

    3 回复  |  直到 14 年前
        1
  •  2
  •   Franci Penov    16 年前

    除非所有200个项目在屏幕上都可见,否则您应该使用某种虚拟布局,只为可见项目创建可视树。这将大大提高您的性能。

        2
  •  2
  •   Drew Marsh    16 年前

    什么是“生成”复选框?您应该使用ItemsControl(或子类)并将表示复选框的数据绑定到它。假设您正在这样做,那么您要做的是通过将VirtualzingStackPanel.IsVirtualization属性应用于ItemsControl,使ItemsControl使用“虚拟化”,如下所示:

    <ItemsControl VirtualizingStackPanel.IsVirtualizing="true" ... >
    

    <ItemsControl VirtualizingStackPanel.VirtualizationMode="Recycling" ... >
    
        3
  •  0
  •   Akash Kava    16 年前

    太多的复选框肯定要花很多钱,如果你看一下基本控件的模板,它们也充满了很多UIElement。

    我建议您是否可以将UI划分为选项卡或手风琴,这将导致在一个屏幕上显示的项目较少,并且可以帮助用户轻松、快速地导航到项目。

    1. 自定义控件模板: 您还可以使用最少的UI元素创建自己的自定义复选框模板,例如在IsChecked属性触发器上填充不同颜色的简单矩形。这将消除一些动画等,这些动画肯定会提高渲染性能。我认为复选框是最不重要的,当谈到动画用户界面。

    2. 尝试为复选框指定固定的宽度/高度,每当您固定控件/容器的高度/宽度时,布局管理器就可以渲染它们,而不是继续计算和调整项目。