我已經在c#中開發了Windows應用程序,其中我有一個panelBox內的pictureBox。我已經應用了放大和縮小功能。現在我想讓pictureBox中的圖像平移。我在pictureBox上應用了mouseDown,mouseMove和mouseUp事件。它的代碼是:平移圖片框中的圖像不起作用
private void pictureBox2_MouseDown(object sender, MouseEventArgs e)
{
if (pflag == 1)
{
dragging = true;
start = e.Location;
}
}
private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
{
// panning code
if (pflag == 1)
{
if (dragging && zoom == 1)
{
pictureBox2.Location = new Point(pictureBox2.Left + (e.Location.X - start.X), pictureBox2.Top + (e.Location.Y - start.Y));
}
}
}
private void pictureBox2_MouseUp(object sender, MouseEventArgs e)
{
if (pflag == 1)
{
dragging = false;
}
}
這裏圖像是平移但沒有邊界控制。有時即使圖像在平移時也會在面板區域下方。我需要的是,圖像應根據縮放因子移動頂部,左側,右側,底部,即滾動條的工作方式,而不是超出此範圍。
我試着根據你的評論更新代碼,但仍然是同樣的問題。實際上,在放大時我增加了我的pictureBox尺寸,但面板尺寸保持不變。當我縮放圖像後平移圖像時,圖像框位置將不受限制地改變。我希望根據面板大小加上縮放因子說明30。如果我正在平移,超出該限制,不應移動pictureBox/image。該功能應該像滾動條。超出垂直和水平滾動條的限制時,圖像不應移動或移動。 –
_我想要根據面板大小加上縮放因子說30。這沒有任何意義!平移總是應該跟着鼠標,不要更快或者離開它! _功能應該像滾動條._它應該在另一個方向,對吧?如果你想限制它,你只需要將它添加到代碼中。除此之外,它在這裏工作得很好:它的工作方式與觸摸屏完全相同,當我將圖像拖動到左側時,它跟隨着指尖/鼠標。 – TaW
您能否幫我解決一些代碼以增加限制? –