从左侧扩展图片框的宽度

Extending the width of a picturebox from the left side

所以我想从图片框的左侧增加图片框的宽度,但一直找不到方法...

imgBeam1.Left += xChange;
imgBeam1.Width -= xChange; //I want this to move the width from the left side.

我的计划是将图片框向右移动,同时向左扩展宽度。

有人能帮忙吗?

也许有更有创意的方法?

编辑: 这是我在业余时间从事的 DBZ 光束竞赛/光束斗争游戏,在游戏的光束斗争部分,表格右侧的角色有更好的显示光束的方式,因为我可以向右移动图片框的宽度,同时向左移动图片框。当使用表单左侧的字符时,我只能将宽度扩展到右侧,一次只显示图像的各个部分。

由于图像加载到图片框的方式(从左到右,左侧先显示),我不确定是否可以获得相同的效果。无论如何,我找不到扩展图片框宽度左侧的方法。

但是谢谢你的回复。我今天做了这个账户,我认为这不会太难解释,但确实如此。也许下次我会展示图片,因为这样更容易解释。谢谢!

编辑 2: -视觉解释

据我了解,您的 post 并不是要改变 PictureBox 外部尺寸 ,而是要移动 Image 里面它。

但这是不可能的。你所能做的就是在两者之间选择 SizeModes:

  • Normal 会将图像放在左上角。
  • Center 是的,它会在控件中居中。

所以让它看起来像是在移动或放置在不同的地方,例如右对齐你可以使用这个解决方法:

  • PictureBox 添加到 Panel

  • 使面板与 PictureBox 一样小,使其充当 'viewport'。

  • 将图片放大,甚至全尺寸,即 SizeMode Autosize.

  • PictureBox 中删除 Border 并将其添加到 Panel 中。

  • 保持 PictureBox Backcolor Transparent.

现在您可以将 PictureBox 移动到 Panel 中,看起来好像只有 Image 在视口下移动..:[=​​31=]

这是用鼠标左右移动它的代码:

Point mDown = Point.Empty;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
    mDown = e.Location;
}

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
    if (e.Button.HasFlag(MouseButtons.Left))
        pictureBox1.Left += e.X - mDown.X;
}

请注意,大 PictureBox 嵌套 在小 Panel 内,而不是相反!

当然也可以进行动画或其他布局更改..