using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
namespace TaskBardaIlerlemeGosterme
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Normal;
}
/*Yapılan işlem bilgilerinin progressbar ve görev çubuğundaki ilerlemeye aktarılması için asenkron metod kullandık.
Eğer asenkron metod kullanmazsak değişiklikler progressbar kontrolüne ve görev çubuğundaki ilerlemeye yansıtılamıyor*/
private Task<double> IsinNeKadariBittiHesapla(int i, int ustSinir, double progressBarMaximum)
{
return Task.Run(() =>
{
return (double)i * progressBarMaximum / ustSinir;
});
}
private async void btnIslemiBaslat_Click(object sender, RoutedEventArgs e)
{
label1.Content = "";
int ustSinir = 200;
for (int i = 0; i <= ustSinir; i++)
{
progressBar1.Value = await IsinNeKadariBittiHesapla(i, ustSinir, progressBar1.Maximum);
TaskbarItemInfo.ProgressValue = progressBar1.Value/progressBar1.Maximum;
Thread.Sleep(25);
}
label1.Content = "İşlem tamamlandı.";
}
}
}