当您更改图片框的大小时,它会从右下方延伸并将图像锁定在左上角。我怎么能改变它,使它从左上角增长并将图像锁定在右边的?
目前,我正在更改位置以调整大小更改,但这并不是将图像保留在框的右侧。
答案 0 :(得分:0)
PictureBox根据尺寸模式计算图像的矩形并将图像绘制到其中。计算基于PB的大小,填充和图像大小。一种棘手的方法可能是使用其中一种,例如Padding。
public class MyPictureBox : System.Windows.Forms.PictureBox
{
public MyPictureBox()
{
SetStyle(ControlStyles.ResizeRedraw, true);
}
void AdjustPadding(Padding padding)
{
if (this.Image == null) return;
var dw = Width - padding.Horizontal - Image.Size.Width;
var dh = Height - padding.Vertical - Image.Size.Height;
padding.Left += dw;
padding.Top += dh;
base.Padding = padding;
}
protected override void OnInvalidated(InvalidateEventArgs e)
{
base.OnInvalidated(e);
AdjustPadding(this.padding);
}
Padding padding;
public new Padding Padding
{
get { return padding; }
set
{
this.padding = value;
AdjustPadding(this.padding);
}
}