2013-09-11 1 views
0

В моей диаграмме я хочу отображать текст до оси Y как вертикальное название в центре оси y, например «% Volume» и ниже оси X в центре, нужно отображать метку как «Sales ». Как добавить эти метки на X & Y-ось соответственно? Мой код XML является:WPF Charting: Отображать текст по вертикали по оси Y

Grid> 
    <DVC:Chart Name="bsiPlaceChart" Title="SI Placement" LegendTitle="Legend" Width="850" Height="450"> 
     <DVC:Chart.Series> 
      <DVC:ColumnSeries Name="layer1Chart" Title="Title 1" ItemsSource="{Binding}" IndependentValuePath="Name" 
          DependentValuePath="Volume"></DVC:ColumnSeries> 

      <DVC:ColumnSeries Name="layer2Chart" Title="Title 2" ItemsSource="{Binding}" IndependentValuePath="Name" 
          DependentValuePath="Volume" ></DVC:ColumnSeries> 

      <DVC:ColumnSeries Name="layer3Chart" Title="Title 3" ItemsSource="{Binding}" IndependentValuePath="Name" 
          DependentValuePath="Volume" ></DVC:ColumnSeries> 
     </DVC:Chart.Series> 
    </DVC:Chart> 
    <TextBlock HorizontalAlignment="Center" Text="Layers" FontSize="12" FontWeight="Bold" Margin="343,440,472,0" /> 

</Grid> 

Для оси X, я пытался добавить текстовый блок ниже графика, но при изменении размера окна, текст также перемещается вверх и вниз. Я потерял его, чтобы оставаться ниже графика - как будто это часть графика.

Как установить такие заголовки для X & Ось Y соответственно.

UPDATIONS: решения, предоставляемый Павла: Я добавил в ресурсах для X & Y осей соответственно:

<Grid.Resources> 
    <DVC:LinearAxis Orientation="Y" Title="% Volume" HorizontalAlignment="Left" x:Key="YAxis" /> 
    <DVC:LinearAxis Orientation="X" Title="Layers" HorizontalAlignment="Center" x:Key="XAxis" /> 
</Grid.Resources> 

И в каждой серии Column модифицирован, как показано ниже:

<DVC:ColumnSeries Name="layer1Chart" Title="Viscosity 1" ItemsSource="{Binding}" IndependentValuePath="Name" DependentValuePath="Volume" DependentRangeAxis="{StaticResource YAxis}"> 
</DVC:ColumnSeries> 

Этого управлял точкой оси Y. Как добавить XAxis к нему?

РЕШЕНИЕ: Удалены ресурсы и добавлены Chart.Axes в Chart, как показано ниже. Это добавляет метку «% объема» слева от оси Y и метку «Слои» внизу X-оси. Отлично.

<!-- Add Title on Y axis and X Axis --> 
<DVC:Chart.Axes> 
     <DVC:LinearAxis Orientation="Y" Title="% Volume" HorizontalAlignment="Left" /> 
     <DVC:CategoryAxis Orientation="X" Title="Layers" Location="Bottom" /> 
</DVC:Chart.Axes> 

С уважением, Пол.

ответ

2

Что-то вроде следующего должен это сделать:

<charting:LineSeries.DependentRangeAxis> 
    <charting:LinearAxis Orientation="Y" Title="Y Axis"/> 
</charting:LineSeries.DependentRangeAxis> 

Есть прочитанный из this SO post и этого другого SO post

EDIT: Взятые из this SO post, чтобы установить ось х и у делать что-то вроде следующий

<charting:Chart.Axes> 
    <charting:LinearAxis Orientation="Y"> 
    <charting:LinearAxis.Title> 
      <ContentControl ContentTemplate="{StaticResource YAxisTitleContentTemplate}"/> 
    </charting:LinearAxis.Title> 
    </charting:LinearAxis> 
    <charting:CategoryAxis Orientation="X"> 
     <charting:CategoryAxis.Title> 
      <ContentControl ContentTemplate="{StaticResource XAxisTitleContentTemplate}"/> 
     </charting:CategoryAxis.Title> 
    </charting:CategoryAxis> 
</charting:Chart.Axes> 

только для оси X:

<charting:Chart.Axes> 
    <charting:CategoryAxis Orientation="X" Title="The X Axis Title" /> 
</charting:Chart.Axes> 
+0

Вышеуказанная 1-я ссылка помогла мне написать название по оси Y. Я добавил ресурсы и установил свойство DependentRangeAxis для ресурса. В этом я могу добавить только 1 ключ; где, поскольку у меня разные по оси X и Y. Как установить то же самое для оси X? – Tvd

+0

Спасибо, Пол. Я заработал. – Tvd