fix: 进度条调整

master
tongg 7 months ago
parent 331dbaf6e2
commit 9d0aced60c
  1. 1
      Language/zh_CN.xaml
  2. 148
      ViewModel/Grading/DiamondSelectVM.cs
  3. 18
      ViewModel/Grading/GradingResultVM.cs
  4. 2
      Views/Dialog/ExportDialog.xaml
  5. 3
      Views/UserControl/ViewportData/Helper/VideoHelper.cs

@ -77,6 +77,7 @@
<sys:String x:Key="异形钻">异形钻</sys:String>
<!-- loading -->
<sys:String x:Key="wait">正在检测,请等待...</sys:String>
<sys:String x:Key="waitExport">正在生成文件,请稍等...</sys:String>
<!--检测结果 报表-->
<sys:String x:Key="Avg">平均</sys:String>

@ -115,84 +115,88 @@ public class DiamondSelectVM : BaseViewModel
/// <param name="param"></param>
public async void StartGrading(object param)
{
#if DEBUG
DoStartGrading(param);
//LoadingDialog loading = new LoadingDialog();
//try
//{
// if (param != null)
// {
// var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => loading.ShowDialog()));
// await Task.Run(async () =>
// {
// bool isEnd = false;
// int progress = 0;
// // 更新进度条的值(需要在UI线程上执行)
// loading.Dispatcher.Invoke(async () =>
// {
// for (int i = 0; i <= 97; i++)
// {
// if (isEnd)
// {
// break;
// }
// // 模拟耗时操作
// //System.Threading.Thread.Sleep(50); // 休眠50毫秒
// await Task.Delay(1000);
// loading.setValue(i);
// progress = i;
// }
// });
#else
LoadingDialog loading = new LoadingDialog();
try
{
if (param != null)
{
var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => loading.ShowDialog()));
await Task.Run(async () =>
{
bool isEnd = false;
int progress = 0;
// 更新进度条的值(需要在UI线程上执行)
loading.Dispatcher.Invoke(async () =>
{
for (int i = 0; i <= 97; i++)
{
if (isEnd)
{
break;
}
// 模拟耗时操作
//System.Threading.Thread.Sleep(50); // 休眠50毫秒
await Task.Delay(400);
loading.setValue(i);
progress = i;
}
});
// SocResultEntity socResolt = new SocResultEntity();
// AlgorithmResultEntity parameter = new AlgorithmResultEntity();
// parameter.Standard = "IGI 2024";
// string value = param.ToString() ?? "";
// if (value != null && value.Split(" ").Length == 3)
// {
// parameter.Shape = value.Split(" ")[0];
// parameter.CrownType = value.Split(" ")[1];
// parameter.PavType = value.Split(" ")[2];
// }
SocResultEntity socResolt = new SocResultEntity();
AlgorithmResultEntity parameter = new AlgorithmResultEntity();
parameter.Standard = "IGI 2024";
string value = param.ToString() ?? "";
if (value != null && value.Split(" ").Length == 3)
{
parameter.Shape = value.Split(" ")[0];
parameter.CrownType = value.Split(" ")[1];
parameter.PavType = value.Split(" ")[2];
}
// // 启动soc
// socResolt = await DoSoc();
// // 启动算法
// parameter = await DoAlgorithm(socResolt, parameter.Shape, parameter.CrownType);
// parameter.Standard = "IGI 2024";
// parameter.Shape = value.Split(" ")[0];
// parameter.CrownType = value.Split(" ")[1];
// parameter.PavType = value.Split(" ")[2];
// parameter.DiamondCode = DiamondCode;
// isEnd = true;
// //GradingResult(parameter);
// await loading.Dispatcher.Invoke(async () =>
// {
// for (int i = progress; progress <= 100; i++)
// {
// Random random = new Random(); int minValue = 50; int maxValue = 150; // 生成50到150之间的随机整数
// int randomNumber = random.Next(minValue, maxValue + 1);
// await Task.Delay(randomNumber);
// loading.setValue(i);
// if (loading.ProgressBar.Value == 98)
// {
// GradingResult(parameter);
// }
// if(loading.ProgressBar.Value >= 100)
// {
// 启动soc
socResolt = await DoSoc();
// 启动算法
parameter = await DoAlgorithm(socResolt, parameter.Shape, parameter.CrownType);
// loading.Close();
// break;
// }
// }
parameter.Standard = "IGI 2024";
parameter.Shape = value.Split(" ")[0];
parameter.CrownType = value.Split(" ")[1];
parameter.PavType = value.Split(" ")[2];
parameter.DiamondCode = DiamondCode;
isEnd = true;
//GradingResult(parameter);
await loading.Dispatcher.Invoke(async () =>
{
for (int i = progress; progress <= 100; i++)
{
Random random = new Random(); int minValue = 20; int maxValue = 100; // 生成50到150之间的随机整数
int randomNumber = random.Next(minValue, maxValue + 1);
await Task.Delay(randomNumber);
loading.setValue(i);
if (loading.ProgressBar.Value == 98)
{
GradingResult(parameter);
}
if(loading.ProgressBar.Value >= 100)
{
// });
// });
// }
//}
//finally {
loading.Close();
break;
}
}
});
});
}
}
finally {
}
#endif
//}
}
/// <summary>
/// 开始检测(对soc和算法开始通讯)

@ -577,11 +577,11 @@ public class GradingResultVM : BaseViewModel
{
ExportDialog exportDialog = new ExportDialog();
var tcs = new TaskCompletionSource<bool>();
//var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => {
// exportDialog.Closed += (s, e) => tcs.SetResult(true);
// exportDialog.ShowDialog();
//}
// ));
var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => {
exportDialog.Closed += (s, e) => tcs.SetResult(true);
exportDialog.ShowDialog();
}
));
await Task.Run(async () =>
{
@ -615,10 +615,10 @@ public class GradingResultVM : BaseViewModel
exportDialog.setValue("Success");
});
//DataConver(filePath);
//exportDialog.Dispatcher.Invoke(() =>
//{
// exportDialog.setValue("5/5");
//});
// exportDialog.Dispatcher.Invoke(() =>
// {
// exportDialog.setValue("Success");
// });
});
await Task.Delay(500);
exportDialog.Close();

@ -18,7 +18,7 @@
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="1" Text="{DynamicResource wait}" FontFamily="PingFangSC-bold" FontSize="36" VerticalAlignment="Center" Background="Transparent" HorizontalAlignment="Center" Foreground="#FFFFFF"/>
<TextBlock Grid.Row="1" Text="{DynamicResource waitExport}" FontFamily="PingFangSC-bold" FontSize="36" VerticalAlignment="Center" Background="Transparent" HorizontalAlignment="Center" Foreground="#FFFFFF"/>
<hc:CircleProgressBar x:Name="ProgressBar" IsIndeterminate="True" Grid.Row="2" />
<TextBlock Grid.Row="3" x:Name="Value" Text="准备开始" HorizontalAlignment="Center" Foreground="#FFFFFF"/>
</Grid>

@ -102,7 +102,8 @@ public class VideoHelper
string ffmpegPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ffmpeg.exe"); // Assuming ffmpeg.exe is in the same directory as the application
if (!File.Exists(ffmpegPath))
{
throw new FileNotFoundException("FFmpeg executable not found.", ffmpegPath);
// throw new FileNotFoundException("", ffmpegPath);
MessageBox.Show("FFmpeg executable not found.", ffmpegPath);
}
string framePattern = Path.Combine(tempDirectory, "frame_%05d.png").Replace("\\", "/"); // Replace backslashes with forward slashes for FFmpeg compatibility

Loading…
Cancel
Save