gpt4 book ai didi

c# - 覆盖 Picturbox OnPaint 事件以旋转图像 - 创建自定义 Picturebox

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:07 24 4
gpt4 key购买 nike

我想创建一个自定义控件或覆盖 pictuebox 的 onpaint 事件,这样我就可以在将图像绘制到 picturbox 之前访问图像,这样我就可以旋转图像。

我知道我可以做这样的事

private void pictureBox1_Paint(object sender, PaintEventArgs e) {

e.Graphics.DrawRectangle(Pens.Black, new Rectangle(10, 10, 20, 20));
}

如何访问图像以及如何创建自定义控件。

最佳答案

这是一个子类的简单示例:它隐藏了原始的 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 分配的图像。
  • 我在设计器中指定图像时遇到过一次崩溃,但无法重现。

关于c# - 覆盖 Picturbox OnPaint 事件以旋转图像 - 创建自定义 Picturebox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34673496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com