图片盒中的旋转图像显示了旋转后的原始形式

时间:2019-12-11 19:34:13

标签: vb.net winforms picturebox

我是使用VB.Net框架4.7.2 Winforms的初学者。 我试图在应用程序中旋转飞机的图像,但它显示了旋转的飞机和原始飞机。

Picture

左图不旋转,右图旋转-25°

PROJECT

这是我旋转图像的代码

我只想显示旋转的图像。 预先感谢。

1 个答案:

答案 0 :(得分:0)

为了详细说明,如果将Image对象分配给Image的{​​{1}}属性,则控件每次都会绘制PictureBox本身。如果您随后在Image事件处理程序中自己绘制相同的Image对象,那么您当然会看到两个图像。

基本上,不要将任何内容分配给控件的Paint属性,而是分配给您自己的Image字段,并在Image事件处理程序中使用该字段:

Paint

如果您当前在设计器中进行设置,则可以在当前设置Private myImage As Image Private Sub Rotation(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint With e.Graphics .TranslateTransform(PictureBox1.Width \ 2, PictureBox1.Height \ 2) .RotateTransform(dgr) .DrawImage(myImage, (-PictureBox1.Width \ 2), (-PictureBox1.Height \ 2)) End With End Sub 的地方或在myImage事件处理程序中的代码中设置PictureBox1.Image