Silverlight组件性能
本文关键字:性能 组件 Silverlight | 更新日期: 2023-09-27 18:17:51
我提到了Silverlight组件的一些性能问题。我有一个StackPanel
(例如),我想给它添加6000个按钮。
当我启动屏幕加载至少5到6秒。在所有按钮渲染完成后,我将鼠标移动到一些按钮上,高亮显示非常缓慢。但首先这里是示例代码:
StackPanel panel = new StackPanel { Orientation = Orientation.Horizontal, Width = 1000, Height = 1000};
for (int i = 0; i < 6000; i++)
{
panel.Children.Add(new Button { Content = "Button" });
}
LayoutRoot.Children.Add(panel); //LayoutRoot is a Grid
如果我将StackPanel
分成几个面板并添加按钮,那么悬停性能比以前更好。下面是代码:
StackPanel root = new StackPanel {Orientation = Orientation.Vertical};
for (int i = 0; i < 100; i++)
{
StackPanel row = new StackPanel { Orientation = Orientation.Horizontal};
for (int j = 0; j < 60; j++)
{
row.Children.Add(new Button { Content = "Button"});
}
root.Children.Add(row);
}
LayoutRoot.Children.Add(root);
悬停性能问题的原因是什么?
关于我的开发者机器的更多信息:
Silverlight 4, Visual Studio 2010, .NET vs. 4,所有更新都已安装
如果这6000个按钮同时不可见,但被滚动条隐藏,你可能想尝试使用VirtualizingStackPanel,它可以防止生成不可见的子控件