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>

私がやりたいのは、各列の値を列の上に表示することです (または、可能であれば列の四角形の内側にも表示します。これらはパーセンテージ値であり、棒グラフでより見やすくすることを目的としています)。

スタイリング情報を見てきましたが、これはスタイルだけではありません。2つの可能性が見えます。また:

  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 に答える