设置轴的标签位置时属性只读错误 - Infragistics

时间:2017-03-14 14:52:42

标签: c# wpf infragistics

我在后面的代码中构建xamdatachart轴,如下所示:

NumericYAxis yAxis = new NumericYAxis() { IsInverted=true, MajorStrokeThickness= 0 }; 
NumericYAxis yAxis_right = new NumericYAxis() { IsInverted = false, MajorStrokeThickness = 0 }; 

要将yAxis的位置设置为OutsideLeft,将yAxis_right的位置设置为OutsideRight,我添加了以下部分:

yAxis.MinimumValue = 0;
yAxis.Title = "Depth";
yAxis.LabelSettings.Location = AxisLabelsLocation.OutsideLeft;

yAxis_right.MinimumValue = 0;
yAxis_right.Title = "Net Production";
yAxis_right.LabelSettings.Location = AxisLabelsLocation.OutsideRight;

但是得到错误

  

“无法在对象'Infragistics.Controls.Charts.AxisLabelSettings'上设置属性,因为它处于只读状态。”

有关其原因的任何见解?

我发现this link在他们的网站上很有用,我确实遵循了相同的规则,但我遇到了错误。

2 个答案:

答案 0 :(得分:2)

抛出错误是因为LabelSettings中的某些属性是只读属性get-only属性。从您的代码中,只分配了Location属性,所以我认为该属性没有公共集,在您尝试时会导致错误。

我搜索了NumericYAxis类,发现了这个:

http://help.infragistics.com/Help/Doc/wpf/2012.1/clr4.0/html/InfragisticsWPF4.Controls.Charts.XamDataChart.v12.1~Infragistics.Controls.Charts.AxisLabelSettings~LocationProperty.html

因此,Location既是Dependency属性(也是静态只读),也是成员属性的名称(带有get和set)。当您键入yAxis_right.LabelSettings.Location时,Visual Studio中只显示一个建议?

答案 1 :(得分:0)

显然这是Xamdatachart中的一个已知问题。 这是Infragistics的回应和解决方法。

这主要是由于AxisLabelSettings对象被冻结,因此它被置于只读状态。此问题的解决方法是创建一个新的AxisLabelSettings对象并将其分配给您的轴' LabelSettings属性。您可以使用以下代码:

AxisLabelSettings settings = new AxisLabelSettings() { Location = AxisLabelsLocation.OutsideRight };
yAxis.LabelSettings = settings;