2016-01-22 5 views
1

Я пытаюсь нарисовать диаграмму для приложения, которое я разрабатываю для Windows Form. Я использую Chart Control и настраиваю его программно.Верхняя метка оси X, не отображающая диаграмму формы Windows

Я до сих пор многому научился, поскольку это элемент управления .NET, и поэтому по этой проблеме имеется много документации по Интернету.

Однако что-то меня выводит со вчерашнего дня: я включил две вторичные метки для моей 2D-линейной диаграммы (AxisX2 и AxisY2). Проблема в том, что метка для этих осей отображается только для второй (AxisY2), хотя они созданы и настроены точно так же.

У меня есть скриншот моего приложения, так что вы можете увидеть, что я говорю:

WinChart without top-label

код для создания этих двух вторичных осей приведены ниже:

 var xAxisTop = new Axis 
     { 
      Minimum = 0, 
      Maximum = 100, 
      Interval = 5.0, 
      LabelStyle = new LabelStyle { ForeColor = Color.Black, Enabled = true, Font = new Font("Verdana", 18.0f) }, 
      Title = "Pos (%)", 
      LineWidth = 2, 
      MajorGrid = new Grid { LineColor = Color.DimGray }, 
      MinorGrid = new Grid { LineColor = Color.DimGray }, 
      IsMarksNextToAxis = true, 
      Enabled = AxisEnabled.True 
     }; 
     chartArea1.AxisX2 = xAxisTop; 

     var yAxisTop = new Axis 
     { 
      Minimum = 0, 
      Maximum = 100, 
      Interval = 5.0, 
      LabelStyle = new LabelStyle { ForeColor = Color.Black, Enabled = true, Font = new Font("Verdana", 18.0f) }, 
      Title = "Load (%)", 
      LineWidth = 2, 
      MajorGrid = new Grid { LineColor = Color.DimGray }, 
      MinorGrid = new Grid { LineColor = Color.DimGray }, 
      IsMarksNextToAxis = true, 
      Enabled = AxisEnabled.True 
     }; 
     chartArea1.AxisY2 = yAxisTop; 

Я буквально понятия не имею, что это такое. Кто-нибудь может мне помочь?

+0

Нет, но я еще не сделал это для вторичной оси Y, и это сработало для этого. – mhkgalvez

+0

Я не понимаю. Я включил AxisY2, и он появился в области диаграммы. Я сделал то же самое для AxisX2, и только недостатки пропали. Я проверил XAxisType и YAxisType для своей серии, и оба установлены в Primary. – mhkgalvez

+0

Вы решили свои проблемы? – TaW

ответ

1

Вы не указали код для добавления DataPoints, но мой хрустальный шар говорит: Скорее всего, ваш Axes оба отлично в порядке, и ваша проблема проистекает из вашего X-Values.

Ваш Y-Values, как обычно, числовые, но если ваш X-Values нет, они все равно будут выглядеть нормально, но это не так!: Labels do show just fine, поскольку они создаются из строк, которые вы подаете, но X-Values на самом деле все 0 s. Проверьте его в отладчике!

Это распространенная ошибка и это только показывает, когда вы пытаетесь на самом деле использовать те X-Values, например, с помощью числовой строки форматирования или сделать расчет или, как вы делаете, попытайтесь используйте их имплицитно, установив Minimum и Maximum для вашего вторичного X-Axis.

Поскольку все значения 0 там нет места между Minimum и Maximum вообще и ничего не показывает ..

Проверка на код, который добавляет DataPoints и убедитесь, что он добавляет номера, а не строки для Х- Ценности тоже!

См. here for a similar case и его обсуждение и решение! Прокрутите до пункта «Обновление»! ((SO-прежнему не позволяет якорей в сообщениях :-())

Update: Я только что нашел еще одна причина, почему метки на вторичных оси не показывают: они показывают только, если вы также показать метки на главной оси. Если вы не хотите, чтобы вы должны были не отключить, вы можете установить их LabelStyle.ForeColor = Color.Transparent!

Очевидно, это не ваш случай, так как основная ось показывает свои метки.