Как отобразить график FSharp.Charting в существующей форме?
Я не понимаю, как создать элемент управления диаграммы и поместить диаграмму в существующую форму. Все примеры, которые я нашел в Интернете, показывают диаграмму в новой форме, но я хотел бы добавить диаграмму к одной из моих существующих форм.
Я думаю о чем-то вроде этого:
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)
Спасибо!
1 ответ
Решение
Чтобы достичь этого, вы должны обернуть свою таблицу в FSharp.Charting.ChartTypes.ChartControl
и позаботьтесь о правильной стыковке. Также не стоит смешивать Chart
от FSharp. Chart
от System.Windows.Forms.DataVisualization.Charting
,
Хорошей отправной точкой может быть следующий полнофункциональный образец, который работает с текущим 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