Перерисовать Picturebox со смещением и назад для имитации эффекта кнопки - PullRequest
0 голосов
/ 20 октября 2018

У меня есть несколько изображений обложек документов и книг, которые отображаются с помощью графических блоков на панели макета таблицы.

Отрывок изображения из приложения winform

Я следуюэтот код (От: https://social.msdn.microsoft.com/Forums/vstudio/en-US/da545e8e-e059-4681-9893-6d5dbdf6eba6/drop-shadow-around-the-image-in-picturebox?forum=vbgeneral), чтобы при нажатии кнопки работала картинка-папка и открывалась нужная книга или документ.

Public Enum ShadowPosition As Integer
        TopLeft = 0
        TopRight = 1
        BottomLeft = 2
        BottomRight = 3
    End Enum

    Private Sub AddImageWithShadow(ByVal img As System.Drawing.Image, ByVal area As ShadowPosition, ByVal thickness As Integer, ByVal clr As Color, ByVal PicBox As PictureBox)
        Using bm As New Bitmap(img.Width + thickness, img.Height + thickness)
            Using gr As Graphics = Graphics.FromImage(bm)
                Dim ix, iy As Integer
                Dim rect As New Rectangle(thickness, thickness, img.Width, img.Height)
                If area = ShadowPosition.TopLeft Or area = ShadowPosition.TopRight Then
                    iy = thickness
                    rect.Y = 0
                End If
                If area = ShadowPosition.TopLeft Or area = ShadowPosition.BottomLeft Then
                    ix = thickness
                    rect.X = 0
                End If
                gr.FillRectangle(New SolidBrush(clr), rect)
                gr.DrawImage(img, ix, iy)
            End Using
            If PicBox.Image IsNot Nothing Then PicBox.Image.Dispose()
            PicBox.Image = New Bitmap(bm)
        End Using
    End Sub

Я пытался изменить положение изображения: Picturebox1.Location =Новая точка (10, 10)

Есть ли способ, которым кто-то может догадаться перерисовать Picturebox с некоторым смещением без тени и обратно в исходное состояние.

...