3

軸の1つ(X軸)で期間を取得しようとしています。現在、日付軸を使用していますが、これに0日を設定することはできません。現在、次のものを使用しています。 日付

ご覧のとおり、0日目に何かが起こった可能性があるため(開始から24時間以内)、必要な0日目はありません。必要なのは次の形式です。numberOfDayshours:分:秒

私は現在、次のコードを使用してxを計算しています。

XDate date = new XDate(0, 0,
    event.Time.Days,
    event.Time.Hours,
    event.Time.Minutes,
    event.Time.Seconds,
    event.Time.Milliseconds);
double x = date;

そして私の軸:

graphPane.XAxis.Title.Text = xAxisTitleText.ToString();
graphPane.XAxis.Scale.IsVisible = true;
graphPane.XAxis.Type = AxisType.Date;
graphPane.XAxis.Scale.Format = "dd HH:mm:ss";

したがって、最終的には次のようなタグが必要です:0 02:23:14 0 08:56:12 1 01:03:44

ズームアウトして曜日と時間を表示できるだけでなく、ズームインして各イベントの分と秒を表示できるようにする必要があります。

注:それほど重要ではありませんが、負の数を非表示にできると便利です。

ありがとう!

4

1 に答える 1

6

自分で問題を解決しました!

将来似たようなものを探しているかもしれない人のために、私がそれをした方法は次のとおりです。

まず、ポイントのx値をTimeSpanのTotalHoursに設定し、次にハンドラーをXAxis.ScaleFormatEventに追加しました。

graphPane.XAxis.ScaleFormatEvent += new Axis.ScaleFormatHandler(Axis_ScaleFormatEvent);

static string Axis_ScaleFormatEvent(GraphPane pane, Axis axis, double val, int index)
{
    TimeSpan timeVal = TimeSpan.FromHours(val); return timeVal.ToString();
}

これが他の人が同じことを探すのに役立つことを願っています!

注:この方法では、他のことも可能です。doubleに変更してから、元に戻すことができるものはすべて、ここで機能するはずです。とても便利なもの。

于 2012-07-10T13:24:44.940 に答える