Отображение значения внутри столбцов в системе. Windows .Forms.DataVisualization.Charting.chart wpf - PullRequest
1 голос
/ 15 апреля 2020

У меня есть система. Windows .Forms.DataVisualization.Charting.chart, и я хочу показать значение оси внутри столбца на графике. Я могу иметь значения при наведении курсора, используя столбец серии Datapoint.

Ниже приведен код диаграммы:

<chartingToolkit:Chart Style="{StaticResource ChartStyle1}"  HorizontalAlignment="Left" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True" Name="barChart">
       <chartingToolkit:ColumnSeries LegendItemStyle="{StaticResource ResourceKey=LegendItemStyle}" DataPointStyle="{StaticResource PointStyle3}" Title="Total Leads" Name="totalLeadColumn"  DependentValuePath="Value" IndependentValuePath="Key"  ItemsSource="{Binding}" />
       <chartingToolkit:Chart.Axes>
             <chartingToolkit:LinearAxis Width="50" ShowGridLines="True" Orientation="Y" FontStyle="Normal" TitleStyle="{StaticResource TitleStyle}"  Title="Number of Leads" Margin="0,0,5,0" Interval="1" Minimum="0" Maximum="20"/>
             <chartingToolkit:CategoryAxis Height="60" Orientation="X" Title="Estimators" FontStyle="Normal" Margin="0,2,5,0" TitleStyle="{StaticResource TitleStyle}"  >
                  <chartingToolkit:CategoryAxis.AxisLabelStyle>
                          <Style TargetType="chartingToolkit:AxisLabel">
                               <Setter Property="Template">
                                   <Setter.Value>
                                       <ControlTemplate TargetType="chartingToolkit:AxisLabel">
                                            <TextBlock Text="{TemplateBinding FormattedContent}"  TextAlignment="Left"  TextWrapping="Wrap"   Width="50"  />
                                        </ControlTemplate>
                                    </Setter.Value>
                               </Setter>
                          </Style>
                 </chartingToolkit:CategoryAxis.AxisLabelStyle>
         </chartingToolkit:CategoryAxis>
     </chartingToolkit:Chart.Axes>
</chartingToolkit:Chart>

Стиль:

<Style x:Key="LegendItemStyle" TargetType="chartingToolkit:LegendItem">
      <Setter Property="IsTabStop" Value="False" />
      <Setter Property="Template">
          <Setter.Value>
              <ControlTemplate TargetType="chartingToolkit:LegendItem">
                 <StackPanel Orientation="Horizontal">
                      <Rectangle Width="15" Height="15" Fill="{Binding Background}" Stroke="{Binding BorderBrush}" StrokeThickness="1" Margin="0,0,3,0" />
                      <visualizationToolkit:Title Content="{TemplateBinding Content}" />
                 </StackPanel>
              </ControlTemplate>
          </Setter.Value>
      </Setter>
</Style>
<Style x:Key="PointStyle3" TargetType="chartingToolkit:DataPoint">
     <Setter Property="DependentValueStringFormat"
                    Value="Total Leads: {0:N0}" />
     <Setter Property="Background">
          <Setter.Value>
              <LinearGradientBrush>
                  <GradientStop Color="#FFB8C0AC" Offset="0"/>
                  <GradientStop Color="#FF5F7143" Offset="1"/>
              </LinearGradientBrush>
          </Setter.Value>
     </Setter>
</Style>

Может кто угодно пожалуйста, скажите мне, что я должен сделать, чтобы отобразить значения в строке диаграммы?

1 Ответ

0 голосов
/ 16 апреля 2020

Хорошо, я нашел решение здесь

WFP-инструментарий построения диаграмм: показывать значения точек данных над всеми столбцами

Необходимо установить стиль Datapoint, как показано ниже

<Style x:Key="ColumDataPointStyle" TargetType="chartingToolkit:ColumnDataPoint">
            <Setter Property="DependentValueStringFormat"
                    Value=" {0:N0}" />
            <Setter Property="Background">
                <Setter.Value>
                    <LinearGradientBrush>
                        <GradientStop Color="#FFB8C0AC" Offset="0"/>
                        <GradientStop Color="#FF5F7143" Offset="1"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="chartingToolkit:ColumnDataPoint">
                        <Grid>
                            <Rectangle Fill="{TemplateBinding Background}" Stroke="Black"/>
                            <Grid Margin="0,-20,0,0" HorizontalAlignment="Center" VerticalAlignment="Top">
                                <TextBlock Text="{TemplateBinding FormattedDependentValue}" Margin="2"/>
                            </Grid>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...