我的 F# 图表库在项目中不起作用

My F# Chart Library doesn't work in a project

open FSharp.Charting
open System

[<EntryPoint>]
let main argv = 
    printfn "%A" argv
    let x = Chart.Line [ for x in -100 .. 100 -> x, pown x 3]
    let y = Console.ReadKey();
    0 //return an integer exit code

您好,我正在尝试在 PROJECT 模式下使用 F# NOT 脚本。到目前为止,我有上面的代码,它告诉我添加对 System.Drawing 的引用,我也这样做了。

我在编译时有 0 个错误或警告,并且运行良好。出现控制台屏幕,但没有其他任何反应。该图只是没有显示或任何东西。

我已经在交互式 window 中尝试过,它在那里工作得很好。有什么想法吗?

您应该将其包装在 Winforms 中。请参阅:How to display an FSharp.Charting graph in an existing form?

一个非常简单的例子:

open FSharp.Charting
open System
open System.Windows.Forms

[<STAThread>]
[<EntryPoint>]
let main argv = 
    printfn "%A" argv
    let chart = Chart.Line [ for x in -100 .. 100 -> x, pown x 3]
    let f1 = new Form(Visible = true, TopMost = true, Width = 700, Height = 500)
    f1.Controls.Add(new ChartTypes.ChartControl(chart, Dock = DockStyle.Fill))
    Application.Run(f1)
   0 // return an integer exit code

请参考System.Drawing、System.Windows.Forms、System.Windows.Forms.DataVisualization

如@s952163 所述,您可以将其包装到 Winforms 中。然而,ShowChart()已经returnsSystem.Windows.Form值。因此,只要您使用 Application.Run(f) 发送事件,此代码也能正常工作:

[<EntryPoint>]
let main argv = 
    printfn "%A" argv
    let f = (Chart.Line [ for x in -100 .. 100 -> x, pown x 3]).ShowChart()
    System.Windows.Forms.Application.Run(f)
    0