3

这里完全紧急。刚刚第一次看到 WPF 并且需要这个快速,所以请原谅我:如果我第一次没有提供足够的信息,我承诺编辑这个问题。

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

xmlns:charting="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"

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

<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>

我想做的是在列上方显示每列的值(如果可能的话,甚至在列矩形内:这些是百分比值,想法是让它们在条形图上更明显)。

我一直在查看样式信息,但这里不仅仅是样式。我看到了两种可能性。任何一个:

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

在这里完全在黑暗中拍摄。谢谢。

4

1 回答 1

7

我会尝试改变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>

玩一点垂直对齐和/或边距,您将能够在列和其他中获取信息。

希望这有帮助!

于 2013-06-07T08:23:38.450 回答