C# 有没有办法为DigitalWaveformGraphs定制EditDateTimeFormatMode?

C# 有没有办法为DigitalWaveformGraphs定制EditDateTimeFormatMode?,c#,windows,winforms,plot,waveform,C#,Windows,Winforms,Plot,Waveform,我试图做到这一点,当你点击我的数字波形图上的结束标记时,弹出的格式是“s.fff”,而不是默认的“mm/dd/yyyy hh/mm/ss”。我找到了XAxis.EditDateTimeFormatMode属性,但看起来只能为其指定“长格式模式”或“短格式模式”,这两种模式都不适合小规模应用。有没有一种方法可以创建您自己的DateTimeFormatMode,使扩展的编辑字段只有几秒钟和几毫秒(以便在图形上进行更精确的缩放/重新定位),而不是默认的大比例?仅供参考,这是实现“short”格式模式的

我试图做到这一点,当你点击我的数字波形图上的结束标记时,弹出的格式是“s.fff”,而不是默认的“mm/dd/yyyy hh/mm/ss”。我找到了XAxis.EditDateTimeFormatMode属性,但看起来只能为其指定“长格式模式”或“短格式模式”,这两种模式都不适合小规模应用。有没有一种方法可以创建您自己的DateTimeFormatMode,使扩展的编辑字段只有几秒钟和几毫秒(以便在图形上进行更精确的缩放/重新定位),而不是默认的大比例?仅供参考,这是实现“short”格式模式的代码,它还不够短:

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

我意识到这是一个有点精确的问题,但我希望这里的人在处理快速信号时也会遇到同样的问题。非常感谢

这只能为您指明正确的方向,但总体思路是创建一个继承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();

非常感谢,我会试试这个。