wfp图表工具包:显示所有列上方的数据点值

mar*_*bik 2 wpf charts

这里完全紧急.刚刚第一次看到WPF并且需要这么快,请原谅我:如果我第一次没有提供足够的信息,我保证会编辑问题.

在使用命名空间定义的图表对象中:

xmlns:charting="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
Run Code Online (Sandbox Code Playgroud)

我正在绘制一个简单的条形图.

<charting:Chart Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" 
                       Visibility="{Binding Path=MyCurrentResultsView, Converter={StaticResource ResourceKey=NullObjectToVisibilityConverter}}"
                       Background="Transparent" Foreground="White"
                       Margin="50,0,50,0" Height="350"
                       HorizontalAlignment="Stretch" Title="{Binding Path=MyCurrentResultsView.Name}">
    <charting:ColumnSeries Height="350" Foreground="Black"
                        ItemsSource="{Binding Path=MyCurrentResultsView.ResultsView}"
                        IndependentValueBinding="{Binding Key}"
                        DependentValueBinding="{Binding Value}">
    </charting:ColumnSeries>
</charting:Chart>
Run Code Online (Sandbox Code Playgroud)

我想要做的是显示列上方每列的值(如果可能,甚至在列矩形内部:这些是百分比值,其目的是使它们在条形图上更加明显).

我一直在关注样式信息,但这不仅仅是风格.我看到两种可能性.或者:

  1. 对于系列中的每个列项,定义一个将帧定位在每列上方的转换,创建一个文本框,其标签设置为相关值,然后在框内绘制文本框.
  2. 在"ColumnSeries"或"?ColumnItem?"上找到某种属性."启用"显示列上方的绑定值.

在这里黑暗的总射击.谢谢.

mic*_*ele 5

我会尝试改变ColumnDatapointTemplate这样的:

<charting:ColumnSeries Height="350" Foreground="Black"
                        ItemsSource="{Binding Path=MyCurrentResultsView.ResultsView}"
                        IndependentValueBinding="{Binding Key}"
                        DependentValueBinding="{Binding Value}">
    <charting:ColumnSeries.DataPointStyle>
        <Style TargetType="charting:ColumnDataPoint">
            <Setter Property="Template">
                <Setter.Value>
                 <ControlTemplate TargetType="charting: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>
    </charting:ColumnSeries.DataPointStyle> 
</charting:ColumnSeries>
Run Code Online (Sandbox Code Playgroud)

使用垂直对齐和/或边距进行一些操作,您将能够将信息输入列和其他列.

希望这有帮助!