Public Shared Function CaptureUI(ui As FrameworkElement, Optional pngpath As String = Nothing) As BitmapSource
Dim offset As Vector = VisualTreeHelper.GetOffset(ui)
Dim rtbmp As New RenderTargetBitmap(ui.ActualWidth + offset.X, ui.ActualHeight + offset.Y, 96, 96, PixelFormats.Pbgra32)
rtbmp.Render(ui)
If pngpath IsNot Nothing Then
Dim png As New PngBitmapEncoder()
Dim bf As BitmapFrame = BitmapFrame.Create(rtbmp)
Dim cut As New CroppedBitmap(bf, New Int32Rect(offset.X, offset.Y, ui.ActualWidth, ui.ActualHeight))
Dim offset As Vector = VisualTreeHelper.GetOffset(ui)
Dim rtbmp As New RenderTargetBitmap(ui.ActualWidth + offset.X, ui.ActualHeight + offset.Y, 96, 96, PixelFormats.Pbgra32)
rtbmp.Render(ui)
If pngpath IsNot Nothing Then
Dim png As New PngBitmapEncoder()
Dim bf As BitmapFrame = BitmapFrame.Create(rtbmp)
Dim cut As New CroppedBitmap(bf, New Int32Rect(offset.X, offset.Y, ui.ActualWidth, ui.ActualHeight))
png.Frames.Add(BitmapFrame.Create(cut))
Dim fs As FileStream = New FileStream(pngpath, FileMode.Create)
png.Save(fs)
fs.Close()
End If
Return rtbmp
Dim fs As FileStream = New FileStream(pngpath, FileMode.Create)
png.Save(fs)
fs.Close()
End If
Return rtbmp
End Function