概要

Windows Forms の UltraDataChart で TimeXAxis(時間軸)を使用している場合に、ValueOverlay を使って特定の日時に縦線を引く方法について説明します。

対象コントロール

  • Infragistics Windows Forms — UltraDataChart

問題

UltraDataChart で TimeXAxis と NumericYAxis を使用したチャートにおいて、特定の日時位置に縦線(ValueOverlay)を表示したいが、ValueOverlay.Value にどのような値を設定すればよいかが分かりにくい場合があります。

解説

ValueOverlay を使用する

ValueOverlay は、軸上の特定の値に線を引くためのシリーズです。X軸に対して使用すると縦線、Y軸に対して使用すると横線になります。

TimeXAxis に対して ValueOverlay を使用する場合、Value プロパティには DateTime.Ticks を設定する必要があります。

サンプルコード

// --- ValueOverlay(縦線) ---
var valueOverlay = new ValueOverlay();
valueOverlay.Name = "valueOverlay";
valueOverlay.Axis = xAxis;
valueOverlay.Value = new DateTime(2025, 1, 1, 1, 0, 0).Ticks;  // 👈 DateTime.Ticks を設定
valueOverlay.Thickness = 2;
chart.Series.Add(valueOverlay);

まとめ

項目コード説明
ValueOverlay.AxisxAxis(TimeXAxis)線を引く対象の軸を指定。X軸 → 縦線、Y軸 → 横線。
ValueOverlay.ValueDateTime.TicksTimeXAxis の場合、対象日時の Ticks 値(long → double)を設定する。
Thickness2線の太さ(任意)。

補足: X軸ラベルの調整について

TimeXAxis のラベルが …(省略記号)で表示される場合は、以下のプロパティで調整できます。

プロパティ説明
LabelExtentラベル領域の高さ(px)を広げて、テキストが切れるのを防ぐ。
LabelAngleラベルを斜めに表示して隣同士の重なりを回避する。
LabelFormat表示形式を短縮し(例: “H:mm”)、重なりを軽減する。
IntervalsTimeAxisInterval コレクションでラベルの表示間隔を制御する。
Tagged:

製品について

Ultimate UI for Windows Forms