如何显示图像预览?更改图片框大小并将其移动到窗体的中心
本文关键字:移动 窗体 显示 何显示 图像 | 更新日期: 2023-09-27 18:34:22
这是 Form1 中的代码:
private void timer1_Tick(object sender, EventArgs e)
{
try
{
pictureBox1.Load(file_array_satellite[file_indxs_satellite]);
//label12.Visible = true;
//label12.Text = "Satellite files date and time: " + File.GetCreationTime(file_array_satellite[file_indxs_satellite]);
file_indxs_satellite = file_indxs_satellite - 1;
//pictureBox1.Load(file_array[file_indexs]);
//label10.Visible = true;
//label10.Text = "Radar files date and time: " + File.GetCreationTime(file_array[file_indexs]);
file_indxs_satellite = file_indxs_satellite - 1;
if (file_indxs_satellite < 0)
{
file_indxs_satellite = file_array_satellite.Length - 1;
}
if (file_indxs_satellite < 0)
{
file_indxs_satellite = file_array_satellite.Length - 1;
}
}
catch
{
timer1.Enabled = false;
}
}
private void satellitesToolStripMenuItem_Click(object sender, EventArgs e)
{
file_array_satellite = Directory.GetFiles(UrlsPath, "RainImage*.*");
for (int i = 0; i < file_array_satellite.Length; i++)
{
Image s = new Bitmap(file_array_satellite[i]);
s = resizeImage(s, new Size(100, 100));
s.Save(UrlsPath + "Changed" + i.ToString("D6") + ".jpg");
}
file_array_satellite = Directory.GetFiles(UrlsPath, "Changed*.*");
if (file_array_satellite.Length > 0)
{
DateTime[] creationTimes8 = new DateTime[file_array_satellite.Length];
for (int i = 0; i < file_array_satellite.Length; i++)
creationTimes8[i] = new FileInfo(file_array_satellite[i]).CreationTime;
Array.Sort(creationTimes8, file_array_satellite);
file_indxs_satellite = 0;
file_indxs_satellite = file_array_satellite.Length - 1;
timer1.Enabled = true;
}
}
public static Image resizeImage(Image imgToResize, Size size)
{
return (Image)(new Bitmap(imgToResize, size));
}
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
}
在窗体 1 的顶部:
string[] file_array_satellite;
int file_indxs_satellite;
在构造函数中:
localFilename = @"d:'localpath'";
UrlsPath = @"d:'localpath'Urls'";
我想做的是,当我将鼠标移到 pictureBox1 区域上时,pictureBox 的大小将调整为例如 400x400,并将在 pictureBox1 中以调整大小的大小显示图像在本例中为 400x400。
就像预览一样。当我用鼠标移动时,动画将继续移动/播放,但 pictureBox 将位于表单的中间,并且尺寸更大,例如 400x400 .
我该怎么做?在pictureBox1_MouseEnter事件中我应该怎么做?
编辑**
试过这个:
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
pictureBox1.Location = new Point(this.Bounds.Width / 2,
this.Bounds.Height / 2);
this.pictureBox1.Size = new Size(500, 500);
this.pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
pictureBox1.BringToFront();
}
但是图片框不在中心,大小没有改变。为什么?在原版中,pictureBox的大小是100,100,硬盘上的文件我也将它们更改为100,100,并且运行良好!
一旦我将鼠标移到图片框上,它就不会移动到中心,也不会调整为 500,500。
form1 大小为 800,600
我希望图片框显示在表单的中心,并且尺寸更大 500,500 或 700,500
怎么了?
您应该通过PictureBox.SizeMode
属性调整图像大小,以便图像将填充PictureBox。然后使用MouseEnter
和MouseLeave
事件来调整图片框的大小。它将随着里面的图片进行调整。