在Mono中使用Microsoft Chart(WinForm)

时间:2016-06-27 22:41:15

标签: c# linux winforms mono mschart

我正在使用一个简单的WindowsForm示例图表。适用于Windows。 我正在使用XBuild在我的Windows平台上编译解决方案。当我尝试在我的Linux机器(Red Hat 6.8)上使用Mono(版本使用4.2.3.4)运行可执行文件时,我收到一条错误消息:

    Unhandled Exception:
   System.NotImplementedException: The method or operation is not implemented.
   at System.Windows.Forms.DataVisualization.Charting.Chart.BeginInit () <0x40a79f40 + 0x00017> in <filename unknown>:0 
   at Data_grid.Form1.InitializeComponent () <0x40a6e680 + 0x002cd> in <filename unknown>:0 
   at Data_grid.Form1..ctor () <0x40a4c9f0 + 0x00027> in <filename unknown>:0 
   at (wrapper remoting-invoke-with-check) Data_grid.Form1:.ctor ()
   at Data_grid.Program.Main () <0x40a0bd90 + 0x0002f> in <filename unknown>:0 
   [ERROR] FATAL UNHANDLED EXCEPTION: System.NotImplementedException: The method or operation is not implemented.
   at System.Windows.Forms.DataVisualization.Charting.Chart.BeginInit () <0x40a79f40 + 0x00017> in <filename unknown>:0 
   at Data_grid.Form1.InitializeComponent () <0x40a6e680 + 0x002cd> in <filename unknown>:0 
   at Data_grid.Form1..ctor () <0x40a4c9f0 + 0x00027> in <filename unknown>:0 
   at (wrapper remoting-invoke-with-check) Data_grid.Form1:.ctor ()
   at Data_grid.Program.Main () <0x40a0bd90 + 0x0002f> in <filename unknown>:0

我是C#和Linux的新手。任何输入将不胜感激。

2 个答案:

答案 0 :(得分:1)

Mono上的WinForms被放弃了,许多方法都没有像那个那样实现。

您可以使用(每个示例)GTK#或Eto.Forms,它们是具有多平台支持的gui工具包。

答案 1 :(得分:0)

问题是你正在使用Mono project's Windows Forms implementation。在完成之前,Xamarin放弃了 WinForms 。因此您获得了例外: NotImplementedException

你有两种选择。

  1. 使用外部项目,例如ZedGraph

  2. 自己绘制图表。如果你想走这条路,可以参考这个WinFormsDemo code in GitHub中的图表类(免责声明:这是我的),例如。