【发布时间】:2020-07-08 01:01:03
【问题描述】:
所以我有这行来自 winforms 的代码,我想将其转换为 WPF。现在我目前被这个功能困住了。以下是我需要从 winforms 转换为 WPF 的代码,因为 WPF 没有图片框工具。
Graphics g = pictureBox1.CreateGraphics();
g.Clear(Color.AliceBlue);
pictureBox1.Image = newimage;//Image.FromFile(thumb);
我尝试将picturebox1.CreatedGraphics() 换成 imagebox 工具,但它没有 createdgraphics 功能。
不胜感激。
谢谢。
【问题讨论】:
-
这个有什么用:
Graphics g = pictureBox1.CreateGraphics(); g.Clear(Color.AliceBlue);?你不能设置pictureBox1.BackColor = Color.AliceBlue吗?Image(如果这就是您所指的)没有背景,您可以使用网格、边框或其他方式创建一个。使用其Source属性来指定 ImageSource 或 Resource。 -
因为这不是我的代码,我的工作是将它从 winforms 转换为 WPF,我假设它会设置一个框或占位符来放置图像文件 (newimage)。这可以解释picturebox1.image = newimage。如果我错了,请纠正我。
-
该代码的唯一可能用法是在不触发 Paint 事件的情况下更改控件背景的颜色(如前所述,与
pictureBox1.BackColor = [Some Color]相同,它将改为引发 Paint 事件)。一旦你设置了一个新的图像,它就会被渲染为静音(它会立即引发 Paint 事件)。或者您以任何方式使表单或控件本身无效。即,如果您不立即调用g.Dispose()并且您不处理前一个图像(当然,如果分配了一个图像),那么这将是无用的并且浪费图形资源。无论如何,不是你的问题。