如何在 c# winforms 中根据 DateTime 值制作动态缩放时间轴面板

How to make a dynamic zooming timeline panel based on DateTime value in c# winforms

我制作了一个带有静态日期时间范围的面板,并希望继续使用动态更改范围时间的缩放功能。

我曾尝试在 Internet 上四处寻找,但只是发现了有关缩放到面板的信息(没有 DateTime 的动态范围值)。

有人知道如何在 C# winforms 中执行此操作吗?或者,如果有人知道关于它的任何参考,也许会很棒?

只是想让它更清楚,这里是例子: 这是我当前的时间线面板,间隔为 20 秒:

例如,如果我以 04:21:30 和 04:21:50 的间隔缩放它,时间线间隔应该更小(例如 2 秒)。

既然有人投票赞我的问题,那我就根据我的情况给出答案。 最后,我使用了 MouseDown and MouseUp 事件。通过这些事件,我可以计算像素的比例和日期时间。

这是我的代码的简化版本:

int PressedCoordinate;
int ReleasedCoordinate;

private void Mouse_Down(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        int PressedCoordinate = e.X;
        //in this part, calculate the DateTime based on the scale of pixel vs datetime
    }
}

private void Mouse_Up(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        int ReleasedCoordinate = e.X;
        //in this part, calculate the DateTime based on the scale of pixel vs datetime
        //calculate the range and do the zoom-in logic
    }
}

如果您想讨论它的细节,请不要犹豫,发表评论。干杯!