如何在c#中使用鼠标滚轮放大和缩小picturebox中的图像?

问题描述 投票:0回答:3

我想在c#中使用鼠标滚轮放大或缩小图片框中的图像。我该怎么做?

c# picturebox mousewheel zooming
3个回答
3
投票

本主题有助于放大和缩小图片框中的图片

在图片框鼠标滚轮事件中添加以下代码

if (e.Delta != 0) {
    if (e.Delta <= 0) {
        //set minimum size to zoom
        if (PictureBox1.Width < 50)
            return;
    } else {
        //set maximum size to zoom
        if (PictureBox1.Width > 500)
            return;
    }
    PictureBox1.Width += Convert.ToInt32(PictureBox1.Width * e.Delta / 1000);
    PictureBox1.Height += Convert.ToInt32(PictureBox1.Height * e.Delta / 1000);
}


0
投票

您可能需要操作图像;将尺寸模式设置为拉伸;通常实例化一个比原始位图小的 System.Drawing.Rectangle (根据您所需的缩放级别计算新的高度/宽度/起点...),然后使用 Bitmap.Clone(Rect,PixelFormat) 重置图像;即:

默认/完整图片:

将 BM 调暗为新位图(MyPicture)

PBox.Image = BM

放大10%:

将矩形变暗为新 System.Drawing.Rectangle(0, 0, BM.Width * .90, BM.Height * .90)

PBox.Image = BM.Clone(矩形, BM.PixelFormat)

本质上,“拉伸”现在应该将较小的图像拉伸到图片框的完整尺寸,本质上是缩放它......我不知道这会有多有效,或者是否有更好的方法来处理这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.