我需要将图表(System.Windows.Forms.DataVisualization.Charting.Chart)复制到剪贴板,以便将其粘贴到其他应用程序中。我使用下面的代码,但它在最后一行给出错误“img”说“类型位图的值不能转换为Bitmapsource”
非常感谢任何纠正错误的帮助。
Private Sub CopyChartBtn_Click(sender As Object, e As RoutedEventArgs) Handles CopyChartBtn.Click
Dim main = DirectCast(Application.Current.MainWindow, MainWindow)
Dim SET_H = DirectCast(main.Frame1.Content, SET_Home)
Dim chart1 = DirectCast(SET_H.Benchchart.Child, System.Windows.Forms.DataVisualization.Charting.Chart)
'save image
Dim img As New System.Drawing.Bitmap(chart1.Width, chart1.Height)
Dim gr As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(img)
chart1.Printing.PrintPaint(gr, New System.Drawing.Rectangle(System.Drawing.Point.Empty, chart1.Size))
Clipboard.SetImage(img)
End Sub
我的项目是WPF,我正在托管windowsform图表。也许这就是问题,因为当我在Windows窗体项目中运行它时,它可以正常工作
答案 0 :(得分:0)
我使用了System.Windows.Forms.Clipboard.SetImage(img)并且它正常工作。原来当它是一个WPF项目时,它在不使用命名空间时使用System.Windows.Clipboard.SetImage(img)