Axis LabelStyle在FSharpChart中不起作用?

时间:2011-07-26 15:01:00

标签: f# fsharpchart f#-charting

我无法弄清楚如何更改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 个答案:

答案 0 :(得分:4)

这是库中的一个错误。如果您想自己修复它,请下载源代码并找到定义typesToClone的行。看起来应该是这样的:

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

这定义了在创建图表时复制其属性的类型列表。问题是名称LabelStyle是指F#Charting Library的源代码中的类型,而不是.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>; ]

我会将此信息发送给库的当前维护者,以确保下一版本包含针对此的修复程序。感谢您报告此问题!