将windowsform图表复制到剪贴板VB

时间:2017-09-13 01:26:33

标签: vb.net charts

我需要将图表(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窗体项目中运行它时,它可以正常工作

1 个答案:

答案 0 :(得分:0)

我使用了System.Windows.Forms.Clipboard.SetImage(img)并且它正常工作。原来当它是一个WPF项目时,它在不使用命名空间时使用System.Windows.Clipboard.SetImage(img)