更改主UI界面

This commit is contained in:
2025-04-27 17:50:57 +08:00
parent cf3d09cb3e
commit 96597c95f2
11 changed files with 545 additions and 284 deletions

View File

@@ -11,7 +11,7 @@ using System.Windows.Threading;
namespace CapMachine.Wpf.Models
{
/// <summary>
/// 程序运行时间统计
/// 整个程序运行时间统计
/// </summary>
public class ProRunTimeCalc : BindableBase
{
@@ -19,6 +19,12 @@ namespace CapMachine.Wpf.Models
{
//秒触发一次
CycleTimer = new System.Timers.Timer(1000);
//CycleTimer = new DispatcherTimer
//{
// Interval = TimeSpan.FromSeconds(1)
//};
//CycleTimer.Tick += (s, e) => CalcTime();
CycleTimer.Elapsed += ProRunCycleAction;
CycleTimer.AutoReset = true;
CycleTimer.Enabled = true;
@@ -27,6 +33,7 @@ namespace CapMachine.Wpf.Models
/// <summary>
/// 程序运行时间周期统计
/// 弃用
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
@@ -49,8 +56,13 @@ namespace CapMachine.Wpf.Models
private void CalcTime()
{
ProEndDt = DateTime.Now;
ProRunTimeStr = ConvertSecToDHMS((int)Math.Round((ProEndDt - ProStartDt).TotalSeconds - PauseTotalSecTime));
var CurTime = (ProEndDt - ProStartDt).TotalSeconds - PauseTotalSecTime; //计算总时间,单位秒
if (TotalProSec != 0)
{
ProValue = CurTime * 100 / TotalProSec;
}
ProRunTimeStr = ConvertSecToDHMS((int)Math.Round(CurTime));
}
private string ConvertSecToDHMS(int totalSeconds)
@@ -81,6 +93,9 @@ namespace CapMachine.Wpf.Models
CycleTimer.Start();
//暂停时间清零可能是多次开始执行程序导致PauseTotalSecTime残留到下一个程序计时中
PauseTotalSecTime = 0;
//结束时间信息
EndTimeInfo = ProStartDt.AddSeconds(PauseTotalSecTime).ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary>
@@ -88,15 +103,28 @@ namespace CapMachine.Wpf.Models
/// </summary>
public void PauseProRunTime()
{
//开始暂停的计时
PauseStartDt = DateTime.Now;
CycleTimer.Stop();
}
/// <summary>
/// 继续计时
/// 返回暂停时间
/// </summary>
public void ContinueProRunTime()
public double ContinueProRunTime()
{
PauseEndDt = DateTime.Now;
//统计的暂停的时间
var PauseTime = (PauseEndDt - PauseStartDt).TotalSeconds;
PauseTotalSecTime = PauseTotalSecTime + (int)Math.Round(PauseTime);
EndTimeInfo = ProStartDt.AddSeconds(PauseTotalSecTime).ToString("yyyy-MM-dd HH:mm:ss");
CycleTimer.Start();
return PauseTime;
}
/// <summary>
@@ -126,6 +154,22 @@ namespace CapMachine.Wpf.Models
/// </summary>
public DateTime ProEndDt { get; set; }
/// <summary>
/// 整个程序步骤的时间长度
/// </summary>
public long TotalProSec { get; set; }
private double _ProValue;
/// <summary>
/// 进度数据
/// </summary>
public double ProValue
{
get { return _ProValue; }
set { _ProValue = value; RaisePropertyChanged(); }
}
private string? _ProRunTimeStr;
/// <summary>
@@ -137,6 +181,17 @@ namespace CapMachine.Wpf.Models
set { _ProRunTimeStr = value; RaisePropertyChanged(); }
}
private string _EndTimeInfo;
/// <summary>
/// 结束时间字符串
/// </summary>
public string EndTimeInfo
{
get { return _EndTimeInfo; }
set { _EndTimeInfo = value; RaisePropertyChanged(); }
}
/// <summary>
/// 全部的暂停的时间
/// 可能暂停多次
@@ -144,5 +199,21 @@ namespace CapMachine.Wpf.Models
public int PauseTotalSecTime { get; set; }
#region
/// <summary>
/// 暂停开始时间
/// </summary>
public DateTime PauseStartDt { get; set; }
/// <summary>
/// 暂停结束时间
/// </summary>
public DateTime PauseEndDt { get; set; }
#endregion
}
}