从左侧扩展图片框的宽度

时间:2017-03-19 20:24:05

标签: c# width picturebox

所以我想从图片框的左侧增加一个图片框的宽度,并且无法找到办法做到这一点......

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

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

有人可以帮忙吗?

也许有更有创意的方法可以做到这一点?

编辑: 这是我在业余时间工作的DBZ光束竞赛/光束挣扎游戏,在游戏的光束挣扎中,形式右侧的角色有一个更好的方式来显示光束,因为我可以将图片框的宽度向右移动,同时向左移动图片框。虽然表单左侧有字符,但我只能将宽度向右扩展,一次只显示图像的各个部分。

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

但是谢谢你的答复。我今天做了这个帐户,并不认为这太难解释,但确实如此。也许下次我会展示图片,因为这样解释起来要容易得多。谢谢!

编辑2: - 视觉解释

enter image description here

1 个答案:

答案 0 :(得分:0)

根据我的理解,您的帖子并非真正关于更改PictureBox外部尺寸,而是关于移动Image 内部

但这是不可能的。您所能做的就是在两个SizeModes

之间进行选择
  • Normal会将图片置于左上方。
  • Center会,是的,将其置于控件中。

所以要让它看起来像移动或放置不同,例如如果与右侧对齐,您可以使用此解决方法:

  • PictureBox添加到Panel

  • 使Panel与您的PictureBox一样小,使其成为一个'视口'。

  • 使图像更大,甚至可以是全尺寸,即SizeMode Autosize

  • Border移除PictureBox,然后将其添加到Panel

  • 保留PictureBox Backcolor Transparent

enter image description here

现在,您可以在PictureBox内移动Panel,看起来好像只有Image正在视口下移动..:

enter image description here

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

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 嵌套,而不是相反!

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