FlexChart for WPF
範囲セレクタ
FlexChart > FlexChart の操作 > エンドユーザー操作 > 範囲セレクタ

チャートをスクロールする方法としては従来からスクロールバーがありますが、範囲セレクタはより新しい手法として、選択した範囲がデータ全体のどの位置にあるかを視覚化できるようにします。

FlexChart の範囲セレクタでは、下限値スクロールボックスと上限値スクロールボックスを使用して数値データの範囲を選択できます。これらのスクロールボックスは、範囲の開始値と終了値を定義します。範囲バーでスクロールボックスを左(または下)にドラッグすると値が減少し、右(または上)にドラッグすると値が増加します。

FlexChart に範囲セレクタを追加するには、C1RangeSelector クラスのインスタンスを作成します。 C1FlexChartLayersプロパティを使用して、チャートのLayersコレクションに追加します。C1RangeSelector クラスは、C1.WPF.C1RangeSlider クラスを継承します。C1RangeSlider で提供される LowerValue プロパティと UpperValue プロパティを使用して、範囲セレクタの下限値と上限値をそれぞれ設定できます。LowerValue プロパティと UpperValue プロパティのいずれかが変更されると、ValueChanged イベントが発生します。

範囲セレクタを水平方向または垂直方向に設定するには、Orientation プロパティを使用します。このプロパティが変更されると、OrientationChanged イベントが発生します。

次に、実装方法を示すコードスニペットを示します。

<c1:C1FlexChart.Layers>
    <c1:C1RangeSelector x:Name="rangeSelector" Grid.Row="4" Margin="110 10 0 10"/>
</c1:C1FlexChart.Layers>
C#
コードのコピー
void OnChartRendered(object sender, RenderEventArgs e)
{
    var flexChart = sender as C1FlexChart;
    if (flexChart == null)
        return;

    var rect = flexChart.PlotRect;
    e.Engine.SetFill(Colors.Transparent);
    e.Engine.SetStroke(new SolidColorBrush(Colors.DimGray));
    e.Engine.SetStrokeThickness(1d);
    e.Engine.DrawRect(rect.X, rect.Y, rect.Width, rect.Height);
}

VB
コードのコピー
Private Sub OnChartRendered(sender As Object, e As RenderEventArgs)
    Dim flexChart = TryCast(sender, C1FlexChart)
    If flexChart Is Nothing Then
        Return
    End If

    Dim rect = flexChart.PlotRect
    e.Engine.SetFill(Colors.Transparent)
    e.Engine.SetStroke(New SolidColorBrush(Colors.DimGray))
    e.Engine.SetStrokeThickness(1.0)
    e.Engine.DrawRect(rect.X, rect.Y, rect.Width, rect.Height)
End Sub