How to: Insert and Delete Pictures
- 3 minutes to read
This example demonstrates how to use the PictureCollection.AddPicture method overloads to insert a picture into a worksheet from different sources.
The PictureCollection.GetPicturesByName method enables you to obtain all pictures with the specified name. Call the PictureCollection.GetPictureById method to find a picture by its unique ID.
To remove a picture from a worksheet, use the picture’s Shape.Delete method.
From a File or Stream
Note
A complete sample project is available at https://github.com/DevExpress-Examples/wpf-spreadsheetcontrol-api-part-2-e4944.
Dim imageStream As Stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("Pictures.chart.png")
Dim imageSource As SpreadsheetImageSource = SpreadsheetImageSource.FromStream(imageStream)
workbook.BeginUpdate()
' Set the measurement unit to Millimeter.
workbook.Unit = DevExpress.Office.DocumentUnit.Millimeter
Try
Dim worksheet As Worksheet = workbook.Worksheets(0)
' Insert a picture from a file so that its top left corner is in the specified cell.
' By default the picture is named Picture1.. PictureNN.
worksheet.Pictures.AddPicture("Pictures\chart.png", worksheet.Cells("D5"))
' Insert a picture to fit in the specified range.
worksheet.Pictures.AddPicture("Pictures\chart.png", worksheet.Range("B2"))
' Insert a picture from the SpreadsheetImageSource at 120 mm from the left, 80 mm from the top,
' and resize it to a width of 70 mm and a height of 20 mm, locking the aspect ratio.
worksheet.Pictures.AddPicture(imageSource, 120, 80, 70, 20, True)
' Insert the picture to be removed.
worksheet.Pictures.AddPicture("Pictures\chart.png", 0, 0)
' Remove the last inserted picture.
' Find the shape by its name. The method returns a collection of shapes with the same name.
Dim picShape As Shape = worksheet.Shapes.GetShapesByName("Picture 4")(0)
picShape.Delete()
Finally
workbook.EndUpdate()
End Try
From URI
Note
A complete sample project is available at https://github.com/DevExpress-Examples/wpf-spreadsheetcontrol-api-part-2-e4944.
Dim imageUri As String = "http://www.devexpress.com/Products/NET/Document-Server/i/Unit-Conversion.png"
' Create an image from Uri.
Dim imageSource As SpreadsheetImageSource = SpreadsheetImageSource.FromUri(imageUri, workbook)
' Set the measurement unit to point.
workbook.Unit = DevExpress.Office.DocumentUnit.Point
workbook.BeginUpdate()
Try
Dim worksheet As Worksheet = workbook.Worksheets(0)
' Insert a picture from the SpreadsheetImageSource at 100 pt from the left, 40 pt from the top,
' and resize it to a width of 200 pt and a height of 180 pt.
worksheet.Pictures.AddPicture(imageSource, 100, 40, 200, 180)
Finally
workbook.EndUpdate()
End Try