从左侧扩展图片框的宽度
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
内,而不是相反!
当然也可以进行动画或其他布局更改..
所以我想从图片框的左侧增加图片框的宽度,但一直找不到方法...
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
内,而不是相反!
当然也可以进行动画或其他布局更改..