C# Silverlight组件性能
我提到了Silverlight组件的一些性能问题。 我有一个C# Silverlight组件性能,c#,.net,silverlight,.net-4.0,C#,.net,Silverlight,.net 4.0,我提到了Silverlight组件的一些性能问题。 我有一个StackPanel(例如),我想在其中添加6000个按钮 启动时,屏幕至少加载5到6秒。渲染完所有按钮后,我将鼠标移到一些按钮上,高亮显示非常缓慢。 但首先这里是示例代码: StackPanel panel = new StackPanel { Orientation = Orientation.Horizontal, Width = 1000, Height = 1000}; for (int i = 0; i < 6000
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
出现这种悬停性能问题的原因是什么
有关我的开发人员计算机的更多信息:
Silverlight 4、Visual Studio 2010、.NET与.4相比,所有更新都已安装如果这6000个按钮在同一时间不可见,但被滚动条隐藏,您可能希望尝试并使用它,以防止生成不可见的子控件。是否确实需要将6000个按钮添加到
堆栈面板
?不同的UI可能是更好的解决方案。这是对silverlight可以处理多少控件的性能测试。silverlight 5已经发布,据称有性能改进。可能也想试试。这个解决方案对我来说只是一个解决办法,为什么silverlight不能在一个stackpanel中绘制6000个按钮?您可以接受的最小值是多少?我不能说可以接受的最小控制量。问题是,为什么Silverlight不能处理这么多控件。如果我在HTML页面中放置10.000个按钮,每个按钮的悬停效果都很好,在silverlight中则不是。即使我放置一个combobox,其中包括几个comboboxitems和6000个按钮,comboboxitems的悬停效果也很差。老实说,我认为这一切都和一辆在交通堵塞时能以500英里/小时的速度行驶的汽车一样有用。我很高兴微软决定,他们必须把精力放在其他问题上。我真的不在乎浏览器能做到这一点,因为我永远不会需要它。
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);