我在后面的代码中构建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在他们的网站上很有用,我确实遵循了相同的规则,但我遇到了错误。
答案 0 :(得分:2)
抛出错误是因为LabelSettings中的某些属性是只读属性get-only属性。从您的代码中,只分配了Location属性,所以我认为该属性没有公共集,在您尝试时会导致错误。
我搜索了NumericYAxis类,发现了这个:
因此,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;