0

I have some images of document and book covers and those are displayed using pictureboxes in a Table layout panel.

Image excerpt from winform app

I am following this code (From: https://social.msdn.microsoft.com/Forums/vstudio/en-US/da545e8e-e059-4681-9893-6d5dbdf6eba6/drop-shadow-around-the-image-in-picturebox?forum=vbgeneral) to make picturebox work as a button when clicked and open the desired book or document.

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

I tried to change the position of image: Picturebox1.Location = New Point(10, 10)

Is there a way someone could guess to redarw picturebox at some offset without its drop shadow and back to initial state.

Asif Hussain
  • 67
  • 11

0 Answers0