如何在 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
}
}
如果您想讨论它的细节,请不要犹豫,发表评论。干杯!
我制作了一个带有静态日期时间范围的面板,并希望继续使用动态更改范围时间的缩放功能。
我曾尝试在 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
}
}
如果您想讨论它的细节,请不要犹豫,发表评论。干杯!