MS Chart Control: تغيير ترتيب السلسلة في أسطورة

StackOverflow https://stackoverflow.com/questions/1917798

  •  20-09-2019
  •  | 
  •  

سؤال

كيف يمكنني تغيير ترتيب السلسلة في أسطورة؟

تظهر سلسلة خطي قبل سلسلة StackedColumn الخاصة بي، ولكن بعد سلسلة العمود الخاصة بي.

Chart c = new Chart();
ChartArea ca = c.ChartAreas.Add("main");
Legend lg = c.Legends.Add("mainLegend");
Series s1 = c.Series.Add("s1");
s1.ChartType = ChartType.StackedColumn;
Series s2 = c.Series.Add("s2");
s2.ChartType = ChartType.Column;
Series s3 = c.Series.Add("s3");
s3.ChartType = ChartType.Line;

اغفر فلسطين ASCII الفقراء، لكن الأسطورة تبدو وكأنها:

....... [أصفر] S2 ....... [أحمر] S3 ...... [الأزرق] S1 ............

عندما أرغب في الذهاب بالترتيب: S1، S2، S3.

أيه أفكار؟

هل كانت مفيدة؟

المحلول

هذا يبدو غريبا جدا بالفعل. بالنسبة لي يبدو أن ترتيب السلسلة في الأسطورة يجب أن يكون هو نفسه الترتيب الذي تضيفه إليه، أو إذا قمت بتعيين LegendItemOrder خاصية الخاص بك Legend على سبيل المثال ReversedSeriesOrder في النظام عكس.

نصائح أخرى

للتوسع في إجابة Emil، معلومات MSDN LegendItemOrder يقول:

إذا تم ضبط خاصية LegendItEmorder على تلقائي، فسيتم عكس الأسطورة تلقائيا إذا تم استخدام أنواع المخططات Stackedcolumn أو StackedColumn100 أو Stackedarea أو Stackedarea100.

لست متأكدا من ذلك، لكن تخميني هو أنه "تجميع" S2 و S3، وعرضها في الاتجاه المعاكس لأن S1 هو مخطط StackedColumn - s1, (s2, s3) يصبح (s2, s3), s1. وبعد (ليس لدي أي فكرة عما يحدث بالفعل وراء الكواليس)

كما قال إيميل، وضع LegendItemOrder الممتلكات إلى LegendItemOrder.SameAsSeriesOrder أو LegendItemOrder.ReversedSeriesOrder يجب إجبر الأسطورة لعرضه في ترتيب معين.

وهنا رابط MSDN الذي لديه معلومات أكثر قليلا:http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.legend.legenditemorder.aspx.

MSChart1.ShowLegend = True
With MSChart1
  .Column = 1
  .Row = 1
  .ColumnLabel = "Series 1"
  .Data = 100
  .Column = 2
  .Row = 1
  .ColumnLabel = "Series 2"
  .Data = 100
End With
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top