0

デジタル波形グラフの最後の目盛りをクリックすると、ポップアップする形式が、デフォルトの「mm/dd/yyyy hh」ではなく、「s.fff」の行に沿ったものになるようにしようとしています。 /mm/ss". XAxis.EditDateTimeFormatMode プロパティを見つけましたが、「ロング フォーマット モード」または「ショート フォーマット モード」のみを割り当てることができるようで、どちらも小さな縮尺にはあまり適していません。デフォルトの巨大なスケールの代わりに、拡張された編集フィールドを秒とミリ秒だけにする独自の DateTimeFormatMode を作成する方法はありますか (グラフのズーム/再配置をより正確にするため)。参考までに、これは「短い」形式モードを実装するコードであり、十分に短くはありません。

this.digitalWaveformGraph1.XAxis.EditDateTimeFormatMode = NationalInstruments.UI.DateTimeFormatMode.CreateShortTimeMode();

これは少し正確な質問だと思いますが、ここの誰かが高速信号を扱うときに同じ問題を抱えていたのではないかと期待していました. 本当にありがとう!

4

1 に答える 1

1

これは正しい方向に向けられるだけですが、一般的な考え方は、NationalInstruments.UI.DateTimeFormatMode を継承するクラスを作成することです - 次のようなものです:

public class SecondsEditRangeFormat : DateTimeFormatMode
{
    public override string FormatValue(object context, DateTimeFormatModeArgs args)
    {
        return args.Value.ToString("s.fff");
    }

    public override bool TryParse(string s, out DateTime value)
    {   
        value = DateTime.ParseExact(s, "s.fff", CultureInfo.CurrentCulture);
        return true;
    }
}

次に、クラスのインスタンスをそのプロパティに割り当てます。

digitalWaveformGraph1.XAxis.EditRangeDateTimeFormatMode = new SecondsEditRangeFormat();
于 2012-11-15T19:39:45.830 に答える