我有两个pictureBoxes" source"和" dest"。现在我想调整一下"来源"将图像显示在我的" dest" -picturebox中。
问题: 我怎样才能调整我的"来源"将图像显示在我的" dest" -picturebox?
中这是我的代码,它只会再次显示相同的图像:
private void pictureBoxZoom_Paint(object sender, PaintEventArgs e)
{
var settings = new Settings();
// Create a local version of the graphics object for the PictureBox.
Graphics Draw = e.Graphics;
Draw.ScaleTransform(2, 2); // rescale by factor 2
IntPtr hDC = Draw.GetHdc(); // Get a handle to pictureBoxZoom.
Draw.ReleaseHdc(hDC); // Release pictureBoxZoom handle.
}
答案 0 :(得分:0)
在每种情况下,您都必须处理PictureBox.SizeMode - 属性。它决定了PictureBox在绘画时对图像的作用。
如果您想应用自定义缩放系数,可以使用Graphics.ScaleTransform - 属性。它允许您缩放整个图形。可以通过创建位图(具有可以使用的Graphics对象)或覆盖PictureBox.OnPaint - Method来对图像本身进行缩放,这需要您创建从PictureBox派生的类。这是最灵活的尝试,因为你可以自己控制一切 - 如果你愿意的话。'
修改强>
抱歉不够清楚,使用Paint
- 事件的方式不起作用。您需要创建自己的PictureBox
- 类(从PictureBox派生)并覆盖OnPaint
- 方法。然后,您可以在PictureBox使用的ScaleTransform
对象上调用Graphics
。我为你准备了一个经过测试的样品:
public class PictureBoxScaleable : PictureBox
{
protected override void OnPaint(PaintEventArgs pe)
{
pe.Graphics.ScaleTransform(.2f, .2f);
base.OnPaint(pe);
}
}