我已经创建了将文件从客户端传输到服务器的项目。我已经完成了文件传输和文件传输的详细信息,例如文件名(something.avi)和文件传输的百分比(10%)如下,每当我传输一个文件时,我使用下面的事件处理程序来了解文件传输的详细信息。
private static void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
// New line for every new file
if ((_lastFileName != null) && (_lastFileName != e.FileName))
{
Console.WriteLine();
}
// Print transfer progress
Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress);
// Remember a name of the last file reported
_lastFileName = e.FileName;
}
private static string _lastFileName;我需要把这个传输的细节绑定在窗口中。我已经完成了绑定,而文件转移。但是我需要使用WPF来绑定窗口中的每一个传输细节的文件。因为我需要显示文件传输的进展。
发布于 2017-04-12 09:27:31
连续触发WinSCP .NET程序集Session.FileTransferProgress事件。
所以,您需要做的就是更新事件处理程序中的控件。
由于事件是在后台线程上触发的,因此需要使用Invoke。见使用不同的线程更新GUI (WPF)。
有关WinForms代码的示例,请参阅WinSCP文章在WinForms ProgressBar上显示FTP/SFTP传输过程。对于WPF,代码将非常相似。
发布于 2017-04-13 04:51:47
我在@Martin Prikryl..Please下面的代码中找到了解决方案
progressBar.Dispatcher.Invoke(() => progressBar.Value = (int)(e.FileProgress * 100), DispatcherPriority.Background);这是为进度条移动与文件转移进度。我将张贴一旦完成显示进度百分比。
progressBar是wpf中Xaml元素的名称。
发布于 2017-04-13 08:47:24
我已经找到了显示文件传输进度的代码和百分比。请为wpf窗口找到以下Xaml和c#代码。
Xaml用于使用wpf在窗口中显示百分比。
<TextBlock x:Name="percentage" Text="" Height="27" Width="50" FontSize="20"/>用于绑定文件传输进度的C#代码(百分比)。
this.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate()
{
this.percentage.Text = ((e.FileProgress * 100).ToString() + "%");
}));https://stackoverflow.com/questions/43364376
复制相似问题