私はC#WPFデスクトップアプリケーションを持っています。「仕事」が「働いている」間にプログレスバーを表示する方法
私はいくつかの仕事をしたいと思います。私がしたいときは、完了するのを待っている間に進行状況バー/情報を表示したいと思います。私はこのNO「こんにちはアンディ」を実行しない場合
public MainWindow()
{
InitializeComponent();
}
private void ShowBusy()
{
Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal,
new Action(() =>
{
frm.Visibility = Visibility.Collapsed;
prog.Visibility = Visibility.Visible;
}));
}
private void HideBusy()
{
Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send,
new Action(() =>
{
frm.Visibility = System.Windows.Visibility.Visible;
prog.Visibility = System.Windows.Visibility.Collapsed;
}));
}
private void Button_Click(object sender, RoutedEventArgs e)
{
System.Threading.Thread th = new System.Threading.Thread(ShowBusy);
th.Start();
while (true)
{
System.Threading.Thread.Sleep(100);
}
HideBusy();
}
表示され、無限ループだけ実行されます。
<Window xmlns:mui="http://firstfloorsoftware.com/ModernUI" x:Class="WpfApplication3.MainWindow"
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:WpfApplication3"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<StackPanel x:Name="frm" Orientation="Horizontal" >
<Button Click="Button_Click" Content="Press Me!" />
<Label Content="this is my test stuff"></Label>
</StackPanel>
<TextBox Text="Hello Andy" x:Name="prog" Visibility="Collapsed"></TextBox>
</Grid>
</Window>
マイコードの後ろ:
ので、これをモックアップするために私がこのUIを持っています..
コメントは議論の対象外です。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/115974/discussion-on-question-by-andrew-simpson-how-to-display-a-progress-bar-whilst- w)。 –