【发布时间】:2018-05-31 08:22:28
【问题描述】:
我想弄清楚如何在我的应用程序中使用进度条。我有一个注销表单作为主窗口。我想要一个进度条的附加窗口。在我的主窗口代码中有 15 秒的睡眠时间。我希望用户在进度条中看到进度,如果 15 秒完成,进度条需要关闭。我想知道是否有任何方法可以将进度条的代码放在我的主窗口代码中。或者也许是一种让进度条与 15 秒等待时间交互的方法。
我是编码新手,所以解释代码对我理解代码很有帮助。
提前致谢。
我在进度条窗口中的代码:
public partial class ProgressBar : Window
{
public ProgressBar()
{
InitializeComponent();
}
private void Window_ContentRendered(object sender, EventArgs e)
{
for (int i = 0; i <= 15; i++)
{
pbStatus.Value++;
System.Threading.Thread.Sleep(1000);
}
}
}
我的进度条.xaml:
<Window x:Class="Sessie_Afmeld_Applicatie.ProgressBar"
WindowStartupLocation="CenterScreen" ResizeMode="CanMinimize"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Sessie_Afmeld_Applicatie"
mc:Ignorable="d"
Title="Voortgang" Height="100" Width="300">
<Grid>
<ProgressBar Minimum="0" Maximum="150" Name="pbStatus" Margin="25,23,37,23" Foreground="#FF13B931" ValueChanged="pbStatus_ValueChanged" />
<Label Content="Label" HorizontalAlignment="Left" Margin="125,66,0,0" VerticalAlignment="Top"/>
</Grid>
</Window>
【问题讨论】:
-
为什么会有“15 秒睡眠”?在这 15 秒内,您实际上在做什么?
-
@mm8 我正在创建一个应用程序,供用户注销他们自己挂起的 citrix 会话。我通过使用 powershell 命令来做到这一点。因为我想检查用户是否已注销,所以我需要等待 +- 15 秒,直到我从我的 powershell 命令中没有返回任何值,这意味着该用户没有剩余会话并且注销成功。
-
@Jze 感谢您提供有用的链接。我让它部分工作。我会及时通知你我的进展。
-
@mm8 我可以问你一个问题吗?我让进度条在不同的测试项目中工作。这个测试项目有一个按钮并正确运行进度条。在我的主项目中,我的进度条在不同的窗口中运行(因为它在我的主窗口中很难看)。我可以将我的测试项目的工作代码放入主窗口代码中吗?或者有什么方法可以链接进度条窗口?希望你能帮帮我。
标签: c# wpf progress-bar