我不明白如何创建图表控件并将图表放在现有表单中.我在网上找到的所有示例都以新的形式显示图表,但我想将图表添加到我现有的一个表单中.
我在考虑这样的事情:
let form = new Form(Text="My form") let lbl = new Label(Text="my label") let chart = Chart.Area ["a",10; "b",20] form.Controls.Add lbl form.Controls.Add chart // ---> The type 'ChartTypes.GenericChart' is not compatible with the type 'Control' Application.Run(form)
谢谢!
解决方法
为了实现这一目标,您应该将图表包装到FSharp.Charting.ChartTypes.ChartControl并处理正确的对接.此外,您不应将FSharp.Charting中的Chart与System.Windows.Forms.DataVisualization.Charting中的Chart混合使用.
一个好的开始点可能是以下功能齐全的样本,它适用于当前的FSharp.Charting v0.90.5; System.Drawing和System.Windows.Forms也需要引用:
open System open FSharp.Charting open FSharp.Charting.ChartTypes open System.Drawing open System.Windows.Forms [<STAThread; EntryPoint>] let main args = let myChart = [for x in 0.0 .. 0.1 .. 6.0 -> sin x + cos (2.0 * x)] |> Chart.Line |> Chart.WithYAxis(Title="Test") let myChartControl = new ChartControl(myChart,Dock=DockStyle.Fill) let lbl = new Label(Text="my label") let form = new Form(Visible = true,TopMost = true,Width = 700,Height = 500) form.Controls.Add lbl form.Controls.Add(myChartControl) do Application.Run(form) |> ignore 0