
概要
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.Axis | xAxis(TimeXAxis) | 線を引く対象の軸を指定。X軸 → 縦線、Y軸 → 横線。 |
| ValueOverlay.Value | DateTime.Ticks | TimeXAxis の場合、対象日時の Ticks 値(long → double)を設定する。 |
| Thickness | 2 | 線の太さ(任意)。 |
補足: X軸ラベルの調整について
TimeXAxis のラベルが …(省略記号)で表示される場合は、以下のプロパティで調整できます。
| プロパティ | 説明 |
|---|---|
| LabelExtent | ラベル領域の高さ(px)を広げて、テキストが切れるのを防ぐ。 |
| LabelAngle | ラベルを斜めに表示して隣同士の重なりを回避する。 |
| LabelFormat | 表示形式を短縮し(例: “H:mm”)、重なりを軽減する。 |
| Intervals | TimeAxisInterval コレクションでラベルの表示間隔を制御する。 |