본문 바로가기

.NET/WinForm

[WinForm] 마우스 휠로 이미지 확대/축소

마우스 휠을 올리고 내리는 동작은 MouseEventArgs의 Delta 속성의 값을 경신한다.

마우스 휠을 아래로 스크롤하는 경우 Delta는 음수 값을 가지고, 위로 스크롤하는 경우 Delta는 양수 값을 가진다. 또한 대부분의 이미지 프로그램에서, 위로 스크롤은 확대, 아래로 스크롤은 축소로 동작한다.

 

컨트롤의 마우스 휠 이벤트는 기본적으로 속성 창에는 표시되지 않기 때문에 디자이너를 통해서 자동으로 생성할 수는 없고 코드를 통해 직접 생성하여 등록할 수 있다.

 

private void MouseWheelEvent(object sender, MouseEventArgs e)
{
    var pictureBox = sender as PictureBox;
    
    if(e.Delta > 0)
    {
        box.Size = new Size((int)(box.Width * 1.2), (int)(box.Height * 1.2));
    }
    else if(e.Delta < 0)
    {
        box.Size = new Size((int)(box.Width * 0.8), (int)(box.Height * 0.8));
    }
}

public Form1()
{
    InitializeComponent();
    pictureBox1.MouseWheel += MouseWheelEvent;
    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}