我有一个在 XP 和 Vista 上运行良好的 .NET 2.0 应用程序,但在 Windows 7 RC (x64) 上它崩溃并出现以下错误:
异常信息
异常类型:System.OutOfMemoryException 消息:内存不足。数据:System.Collections.ListDictionaryInternal TargetSite:Void .ctor(System.Drawing.Image,System.Drawing.Drawing2D.WrapMode) HelpLink:NULL 来源:System.Drawing
StackTrace 信息
在 System.Drawing.TextureBrush..ctor(Image image, WrapMode wrapMode) at System.Windows.Forms.ControlPaint.DrawBackgroundImage(Graphics g, Image backgroundImage, Color backColor, ImageLayout backgroundImageLayout, Rectangle bounds, Rectangle clipRect, Point scrollOffset, RightToLeft rightToLeft ) 在 System.Windows.Forms.Control.PaintBackground(PaintEventArgs e, Rectangle rectangle) 在 System.Windows.Forms.Control 的 System.Windows.Forms.Control.PaintBackground(PaintEventArgs e, Rectangle rectangle, Color backColor, Point scrollOffset)。 OnPaintBackground(PaintEventArgs pevent) 在 System.Windows.Forms.ScrollableControl.OnPaintBackground(PaintEventArgs e) 在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 层, Boolean disposeEventArgs) 在 System.Windows.Forms.Control.WmPaint( System.Windows.Forms.Control 处的消息和 m)。WndProc(Message& m) 在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
关于为什么会发生这种情况的任何想法,或者我如何围绕它进行编程?它只是绘制没有特殊背景的标准winform。
更新:我发现这只是当 BackgroundImageLayout = ImageLayout.Tile 时的问题,这也是默认设置。将其设置为缩放或居中,问题就会消失。但这很不令人满意,因为我需要它来平铺。