所以我想从图片框的左侧增加一个图片框的宽度,并且无法找到办法做到这一点......
imgBeam1.Left += xChange;
imgBeam1.Width -= xChange; //I want this to move the width from the left side.
我的计划是将图片框向右移动,同时将宽度向左延伸。
有人可以帮忙吗?
也许有更有创意的方法可以做到这一点?
编辑: 这是我在业余时间工作的DBZ光束竞赛/光束挣扎游戏,在游戏的光束挣扎中,形式右侧的角色有一个更好的方式来显示光束,因为我可以将图片框的宽度向右移动,同时向左移动图片框。虽然表单左侧有字符,但我只能将宽度向右扩展,一次只显示图像的各个部分。
由于图像如何加载到图片框中(从左到右,首先显示左侧)我不确定是否可以获得相同的效果。而且无论如何我找不到扩展图片框宽度左侧的方法。
但是谢谢你的答复。我今天做了这个帐户,并不认为这太难解释,但确实如此。也许下次我会展示图片,因为这样解释起来要容易得多。谢谢!
编辑2: - 视觉解释
答案 0 :(得分:0)
根据我的理解,您的帖子并非真正关于更改PictureBox
的外部尺寸,而是关于移动Image
内部。
但这是不可能的。您所能做的就是在两个SizeModes
:
Normal
会将图片置于左上方。Center
会,是的,将其置于控件中。所以要让它看起来像移动或放置不同,例如如果与右侧对齐,您可以使用此解决方法:
将PictureBox
添加到Panel
。
使Panel与您的PictureBox一样小,使其成为一个'视口'。
使图像更大,甚至可以是全尺寸,即SizeMode Autosize
。
从Border
移除PictureBox
,然后将其添加到Panel
。
保留PictureBox
Backcolor Transparent
。
现在,您可以在PictureBox
内移动Panel
,看起来好像只有Image
正在视口下移动..:
以下是用鼠标左右移动它的代码:
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
嵌套,而不是相反!
当然也可以进行动画或其他布局更改。