コード例 #1
0
        public ProgressRateSampleControl()
        {
            InitializeComponent();

            var dataContext = new ProgressRateSampleControlViewModel();

            // Open a progress window whenever a task is executed.
            dataContext.TaskStarted += (sender, e) =>
            {
                var task = e.Item1;
                var cancellationTokenSource = e.Item2;
                var progress       = e.Item3;
                var owner          = Window.GetWindow(this);
                var progressWindow =
                    new ProgressWindowContext()
                {
                    Task = task,
                    CancellationTokenSource = cancellationTokenSource,
                    Owner   = owner,
                    Title   = "ProgressRate Sample",
                    Content = "Wait 5 seconds...",
                };
                progressWindow.ProgressRate = 0.0;
                progress.ProgressChanged   += (_, rate) =>
                {
                    progressWindow.ProgressRate = rate;
                };
                progressWindow.ShowDialog();
            };

            DataContext = dataContext;
        }
コード例 #2
0
        void runButton_Click(object sender, RoutedEventArgs e)
        {
            // Create and start a new task which just suspends 5 seconds.
            var task = RunAsync();

            var progressWindow =
                new ProgressWindowContext()
            {
                Owner = Window.GetWindow(this),
                Task  = task,
            };

            progressWindow.ShowDialog();
        }