1

Silverlight3ツールキットのグラフ作成は素晴らしいです。私はBarSeriesを使用していますが、silverlightは値の範囲に比例するバーの長さを示しています。しかし、バーまたはバーのすぐ隣で実際の値を取得する方法はありますか?これが私のXAMLです

<chartingToolkit:Chart
                        Grid.Column="1"
                        x:Name="chartEnvironmentStatusGlobal"
                        Title="Environment Status">
                        <chartingToolkit:BarSeries
                            x:Name="chartEnvironmentStatus"
                            Title="Pass"
                            HorizontalAlignment="Stretch"
                            VerticalAlignment="Stretch"
                            Background="Green"
                            IndependentValueBinding="{Binding Path=Instance}"
                            DependentValueBinding="{Binding Path=Count}"
                            AnimationSequence="LastToFirst">
                            </chartingToolkit:BarSeries>
                        <chartingToolkit:BarSeries
                            x:Name="chartEnvironmentStatus1"
                            Title="Fail"
                            HorizontalAlignment="Stretch"
                            VerticalAlignment="Stretch"
                            Background="Red"
                            IndependentValueBinding="{Binding Path=Instance}"
                            DependentValueBinding="{Binding Path=Count}"
                            AnimationSequence="LastToFirst">
                            </chartingToolkit:BarSeries>
                    </chartingToolkit:Chart>

前もって感謝します。

4

1 に答える 1

2

BarDataPointの新しいテンプレートを作成する必要があります。テンプレート全体をここに投稿するのは、a)非常に大きく、b)著作権のどこに立っているのかわからないためです。

ブレンドがある場合は、ツールを使用してコピーを作成できるはずですが、既存のテンプレートをかなり簡単に取得できます。または、次の場所にあるソースコードから取得することもできます。-

#someSourceCodeRootFolder\Controls.DataVisualization.Toolkit\Charting\DataPoint\BarDataPoint.xaml

リソースディクショナリでこれを作成します:-

<Style x:Key="BarDataPointWithContent" TargetType="charting:BarDataPoint">
  <Setter Property="Template">
    <Setter.Value>
      <Border ... copy from original template... >
         <!-- Wads of original VisualStateManager stuff here -->
         <Grid Background="{TemplateBinding Background}">
           <!-- Original set of Rectangles and Border here -->
           <TextBlock Text="{TemplateBinding FormattedDependentValue}"
             HorizontalAlignment="Center" />
         </Grid>
         <ToolTipService.ToolTip>
             <!-- Do something different here perhaps -->
         </ToolTipService.ToolTip>
      </Border>
    </Setter.Value>
  </Setter>
</Style>

基本的に、私が行ったことは、そのfinalを追加し、ToolTipがContentControlで使用するTextBlockのと同じプロパティにバインドします。FormattedDependentValueTextBlockにさらにスタイルを追加して、必要な外観を得ることができます。また、ツールチップのコンテンツで別のことを行うこともできます。

したがって、このスタイルがぶら下がっている場合は、チャート自体でこれを行うことができます:-

<chartingToolkit:BarSeries.DataPointStyle>
  <Style TargetType="BarDataPoint" BasedOn="{StaticResouce BarDataPointWithContent}" >
    <Setter Property="Background" Value="Red" />
  </Style>
</chartingToolkit:BarSeries.DataPointStyle>

潜んでいるMSoftiesへの注意

テンプレートをドキュメントのどこかに追加して、ソースコード、Blend、Reflectorを抽出する必要がないようにしてください。

于 2010-02-12T20:35:01.393 に答える