我有一个 Visual Studio 应用程序,它的初始屏幕图像被切割成“切片”。这些位置在表单设计器中指定,因此它们在屏幕上正确排列。但是,当应用程序在中文版的 Windows XP 上运行时,图像不合适。看起来好像图像切片被“爆炸”分开了。
这里发生了什么?国际版本的Windows对图片的“左上”坐标有不同的含义吗?如何强制图像精确显示在我想要的位置?
我有一个 Visual Studio 应用程序,它的初始屏幕图像被切割成“切片”。这些位置在表单设计器中指定,因此它们在屏幕上正确排列。但是,当应用程序在中文版的 Windows XP 上运行时,图像不合适。看起来好像图像切片被“爆炸”分开了。
这里发生了什么?国际版本的Windows对图片的“左上”坐标有不同的含义吗?如何强制图像精确显示在我想要的位置?
我们找到了解决方案!显然,图片框在中文 XP PC 上伸展开来,但它们包含的图像却没有。解决方法是添加如下代码:
Me.PictureBoxIcon.Width = Me.PictureBoxIcon.Image.Width
Me.PictureBoxIcon.Height = Me.PictureBoxIcon.Image.Height
Dim loc As New Point
loc.X = Me.PictureBoxIcon.Location.X
loc.Y = Me.PictureBoxIcon.Location.Y + Me.PictureBoxIcon.Height
Me.PictureBoxAbout.Location = loc
Me.PictureBoxAbout.Width = Me.PictureBoxAbout.Image.Width
Me.PictureBoxAbout.Height = Me.PictureBoxAbout.Image.Height
希望这对其他人有帮助!
在表单的 OnLoad 事件中,您始终可以显式设置每个部分的位置。如果从第一个左上角开始,并假设一个包含图像的数组按顺序排列:
images[0].Location = new Point(0,0);
for (int i = 1; i < images.Length; i++)
{
images[i].Location = new Point(images[i - 1].Location.X + images[i - 1].Width, 0);
}
这会将第一张图像设置为左上角,并将所有后续图像设置在最后一张图像之后。