Axis LabelStyle не работает в FSharpChart? - PullRequest
1 голос
/ 26 июля 2011

Я не могу понять, как изменить шрифт на осях в FSharpChart.WithArea .

Это самый короткий пример, который я смог придумать, который отображает проблему (по крайней мере, на моей машине).

#r "System.Windows.Forms.DataVisualization.dll"
#r "MSDN.FSharp.Charting.dll"
open System.Windows.Forms.DataVisualization.Charting
open MSDN.FSharp.Charting
open System.Drawing

let font = new Font("Wingdings", 10.0F)

FSharpChart.FastLine([(0.,1.);(10., 10.)])
|> FSharpChart.WithArea.AxisX(LabelStyle = new LabelStyle(Font = font))
|> FSharpChart.WithCreate

1 Ответ

4 голосов
/ 26 июля 2011

Это ошибка в библиотеке. Если вы хотите исправить это самостоятельно, загрузите исходный код и найдите строку, которая определяет typesToClone. Это должно выглядеть примерно так:

let typesToClone = 
    [ typeof<LabelStyle>; typeof<Axis>; typeof<Grid>; typeof<TickMark>
      typeof<ElementPosition>; typeof<AxisScaleView>; typeof<AxisScrollBar>; ]

Определяет список типов, свойства которых копируются при создании диаграммы. Проблема в том, что имя LabelStyle относится к типу в исходном коде библиотеки диаграмм F #, а не к типу элементов управления диаграммы .NET System.Windows.Forms.DataVisualization.Charting.LabelStyle. Это можно исправить, используя полное имя типа:

let typesToClone = 
    [ typeof<System.Windows.Forms.DataVisualization.Charting.LabelStyle>; 
      typeof<Axis>; typeof<Grid>; typeof<TickMark>
      typeof<ElementPosition>; typeof<AxisScaleView>; typeof<AxisScrollBar>; ]

Я отправлю эту информацию текущим сопровождающим библиотеки, чтобы убедиться, что в следующей версии исправлено это. Спасибо за сообщение о проблеме!

...