我想创建一个自定义控件或覆盖pictuebox的onpaint事件,这样我就可以在图像框中绘制之前访问图像,这样我就可以旋转图像了。
我知道我可以做这样的事情
private void pictureBox1_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawRectangle(Pens.Black, new Rectangle(10, 10, 20, 20));
}
如何访问图像以及如何创建自定义控件。
答案 0 :(得分:3)
这是一个子类的快速示例:它隐藏了原始的Image
属性,并将其替换为在分配之前进行旋转的属性:
class RotatedPictureBox : PictureBox
{
private Image image;
public new Image Image {
get { return image; } // ?? you may want to undo the rotation here ??
set {
Bitmap bmp = value as Bitmap ;
// use the rotation you need!
if ( bmp != null ) bmp.RotateFlip(RotateFlipType.Rotate270FlipX);
image = bmp;
base.Image = Image;
}
}
}
public RotatedPictureBox ()
{
}
}
警告:分配图片似乎有效,但我没有针对所有可能的用途对其进行测试..已知限制
ImageLocation
分配的图像。