可能是一个糟糕的标题,但我正在开发一个winforms应用程序,直到我开始进行不同尺寸的可用性测试之前一切顺利。
我注意到调整大小事件的控件“重绘”会非常慢。我用Google搜索并发现splitcontainers和dockstyle fill不能很好地播放,所以我改变了我的方法并且性能有所改善,但仍然很慢。
事实证明,我的用户控件上的背景图像导致延迟,让我想知道这是什么最佳做法?我有几个不同的渐变,大约1024x768,设置为sizemode拉伸。
我的临时修复方法是用纯黑色替换我漂亮的渐变背景。但这并不能让事情变得美好。似乎如果我有两个不同大小的背景图像并在form_resize上交换它们将是最有效的,但很多时候我会用艰难的方式做事,因为我不知道更好。所以我想我会问这里。这仅适用于winforms。我可以为我的wpf / sl东西导出矢量。
答案 0 :(得分:0)
尝试使用渐变在控件上将BackgroundImageLayout
属性设置为“无”。这通常会带来适度的性能提升
答案 1 :(得分:0)
渐变图像是非常具体的吗?如果它只是一个线性渐变,你不能自己画背景吗?
在用户控件中,添加一个OnPaint覆盖,如下所示:
protected override void OnPaint(PaintEventArgs e)
{
Brush brush = new LinearGradientBrush(
Point.Empty,
new Point(0, this.Height),
Color.Yellow,
Color.Green);
e.Graphics.FillRectangle(
brush, e.ClipRectangle);
}