我在面板上有滚动和图片框的面板。当我将SizeMode分配给CenterImage时,滚动不起作用,当分配给AutoSize时,图片不在中心。
是否有可能同时制作 - 能够滚动和将图片放在中心?
答案 0 :(得分:0)
您可以尝试使用这个简单的Panel控件来处理这两个要求:
public class PanelImage : Panel {
private Image image;
public PanelImage() {
this.DoubleBuffered = true;
this.ResizeRedraw = true;
}
public Image Image {
get { return image; }
set {
image = value;
if (image != null) {
this.AutoScrollMinSize = image.Size;
}
this.Invalidate();
}
}
protected override void OnPaint(PaintEventArgs e) {
e.Graphics.Clear(Color.White);
if (image != null) {
Point p = this.AutoScrollPosition;
if (image.Width < this.ClientSize.Width) {
p.X = (this.ClientSize.Width / 2) - (image.Width / 2);
}
if (image.Height < this.ClientSize.Height) {
p.Y = (this.ClientSize.Height / 2) - (image.Height / 2);
}
e.Graphics.DrawImage(image, p);
}
base.OnPaint(e);
}
}