バージョン

シリーズの強調表示

トピックの概要

目的

このトピックは、サポートされるシリーズのリストに従って、シリーズの強調表示機能の有効化についての情報を提供します。このトピックでは、利用可能なイベントを使用してシリーズの協調表示を構成する方法についても説明します。

前提条件

このトピックを理解するためには、以下のトピックを理解しておく必要があります:

トピック 目的

XamDataChart は、コントロールの DataContext プロパティにマップされるデータ オブジェクト モデルを必要とします。ここでは、簡単なデータ オブジェクト モデルを提供しますが、自分自身で作成し、このサンプル コードの代わりに使用することができます。

このトピックの内容

このトピックは、以下のセクションで構成されます。

シリーズの強調表示

概要

この機能は、シリーズ全体またはシリーズ内の個別の項目を強調表示します。たとえば、 LineSeries などのシリーズ内の線全体を 1 つの図形として強調表示します。また、 ColumnSeries などのシリーズの各列を個別に強調表示することもできます。サポートされるすべてのシリーズで、各マーカーを強調表示できます。

現在は、マウスによる強調表示のみがサポートされています。

シリーズの強調表示機能は、以下のシリーズで使用可能です。

プレビュー

以下のスクリーンショットは、シリーズの強調表示機能が有効な ColumnSeriesxam DataChart コントロールのプレビューです。

xamDataChart Series Highlighting 01.png

プロパティ

以下の表で、シリーズの強調表示で使用されるプロパティを簡単に説明します。これらのプロパティはサポートされるシリーズに設定されています。

プロパティ名 プロパティ タイプ 説明

Boolean

シリーズの強調表示機能を有効にします。デフォルトは False に設定されています。

TimeSpan

強調表示になるまでの時間を指定します。

表の下のスクリーンショットは、以下の設定の結果、 ColumnSeriesIsHighlightingEnabledHighlightingTransitionDuration プロパティで設定されたチャートの外観がどのようになるか示しています。

プロパティ

True

0:00:10

xamDataChart Series Highlighting 01.png

以下のコードはこの例を実装します。

XAML の場合:

<ig:XamDataChart x:Name="xamColumnChart"
                 HighlightingTransitionDuration="00:00:10"
 <ig:XamDataChart.Series>
 <ig:ColumnSeries ItemsSource="{Binding EnergySampleData}"
                       ValueMemberPath="Coal"
                       Source="{StaticResource DataViewModel}"
                       XAxis="{Binding ElementName=ColumnXAxis}"
                       YAxis="{Binding ElementName=ColumnYAxis}"
                       IsHighlightingEnabled="True">
 </ig:ColumnSeries>
 </ig:XamDataChart.Series>
</ig:XamDataChart>

イベント

概要

特に、シリーズの強調表示機能と関連があるイベントは 2 つあります。

シリーズの強調表示機能は、以下のシリーズで使用可能です。

これらのイベントは次の目的で構成することができます。

  • 強調表示の指定方法の変更

  • LineSeries などのシリーズ全体に割り当てられた外観プロパティや、 ColumnSeries のように個別の項目を持つシリーズの各項目の外観プロパティを変更します。

前述のイベントを使用してシリーズの強調表示を設定した場合、特定のシリーズで有効なプロパティのみが使用できます。たとえば LineSeries の Fill または RadiusX プロパティのオーバーライドは、それらのプロパティが LineSeries に作用しないため何も影響がありません。

イベント引数のプロパティ

以下の表に、 AssigningCategoryStyleEventArgsBase のプロパティを簡単に説明します。

プロパティ名 プロパティ タイプ * 説明*

int

現在、強調表示されているデータの範囲の開始インデックスです。

int

現在、強調表示されているデータの範囲の終了インデックスです。

DateTime

現在、強調表示されているデータの範囲の開始日付です。

DateTime

現在、強調表示されているデータの範囲の終了日付です。

GetCategoryItemsEventHandler

強調表示されているデータ ソースの実際の項目です。非常に多くのデータが対象の場合にイベントが発生するたびに呼び出すと、パフォーマンスが低下します。

Brush

シリーズのデフォルトの Fill プロパティをオーバーライドします。Fill プロパティが特定のシリーズに影響を与える場合のみ、このプロパティが作用します。

Brush

シリーズのデフォルトの Stroke プロパティをオーバーライドします。

Double

シリーズのデフォルトの Opacity プロパティをオーバーライドします。

HiglightingInfo

強調表示されたシリーズのスタイル設定を指定します。

Double

シリーズの強調表示の進捗状況です。0 から 1 の値です。

Double

シリーズの強調表示の進捗状況です。0 から 1 の値です。

Bool

True に設定すると、デフォルトの強調表示が適用されません。

Bool

このイベントが有効な日付範囲かどうかを決定します。

AssigningCategoryMarkerStyleEventArgs は、上記の表に示すように AssigningCategoryStyleEventArgsBase と同じプロパティをすべて継承します。

以下のスクリーンショットは、強調表示された列を変更する代わりに、強調表示されていない列をフェードするために、 AssigningCategoryStyle イベントを使用して強調表示機能を変更する例を示しています。

xamDataChart Series Highlighting 02.png

以下はこの例における実装コードです。

C# の場合:

private void CategorySeries_OnAssigningCategoryStyle(object sender, AssigningCategoryStyleEventArgs args)
{
 double minOpacity = .3, opacity = 1.0;
   if (args.SumAllSeriesHighlightingProgress > 0.0)
   {
      var progress = 0.0;
      if (args.HighlightingInfo != null)
      {
         progress = args.HighlightingInfo.Progress;
      }
      progress = progress - args.SumAllSeriesHighlightingProgress;
      opacity = minOpacity + (1.0 + progress) * (1.0 - minOpacity);
      args.Opacity = opacity;
      args.HighlightingHandled = true;
      for (var i = 0; i < this.DataChart.Series.Count; i++)
      {
         var curr = this.DataChart.Series[i];
         var series = sender as Infragistics.Controls.Charts.Series;
         if (series != null && series.Name != curr.Name)
         {
            curr.NotifyVisualPropertiesChanged();
         }
      }
   }
}

Visual Basic の場合:

Private Sub CategorySeries_OnAssigningCategoryStyle(ByVal sender As Object, ByVal args As AssigningCategoryStyleEventArgs)
Dim minOpacity As Double 3
Dim opacity As Double 1
If (args.SumAllSeriesHighlightingProgress > 0) Then
 Dim progress As var = 0
 If (Not (args.HighlightingInfo) Is Nothing) Then
 progress = args.HighlightingInfo.Progress
 End If
 progress = (progress - args.SumAllSeriesHighlightingProgress)
 opacity = (minOpacity + ((1 + progress) * (1 - minOpacity)))
 args.Opacity = opacity
 args.HighlightingHandled = true
 Dim i As var = 0
 Do While (i < Me.DataChart.Series.Count)
 Dim curr As var = Me.DataChart.Series(i)
 Dim series As var = CType(sender,Infragistics.Controls.Charts.Series)
 If ((Not (series) Is Nothing)
 AndAlso (series.Name <> curr.Name)) Then
 curr.NotifyVisualPropertiesChanged
 End If
 i = (i + 1)
 Loop
 End If
End Sub

関連コンテンツ

このトピックの追加情報については、以下のトピックも合わせてご参照ください。

トピック 目的

XamDataChart は、コントロールの DataContext プロパティにマップされるデータ オブジェクト モデルを必要とします。ここでは、簡単なデータ オブジェクト モデルを提供しますが、自分自身で作成し、このサンプル コードの代わりに使用することができます。

このセクションでは、XamDataChart コントロールのさまざまな機能を使用するために役立つ、重要な概念やタスク ベースの情報について説明します。