title: WPF: How to give feedback to user when he needs to wait for up to 3 seconds?
body: <p>Let's say I'm writing a WPF desktop application with a single-document interface (like a simple image editing tool). Now the user starts an operation on this document that could take between 0.2 and 3 seconds to complete (like applying a complicated filter to the image). Let's also assume that there is hardly anything the user should be allowed to do while this is in progress. (For example, while processing an image, it doesn't make much sense to allow the user to do anything else with this image.)</p>
  <p>In WinForms, I would just block the UI thread during this time, set the mouse pointer to WaitCursor and write a status label in the main window saying &quot;Processing...&quot;.</p>
  <p>Now with WPF this seemed to be neither possible nor intended. To start with, I cannot change a label on the main window to give user immediate feedback while the UI thread is blocked.</p>
  <p>I read on the internet (like here on StackOverflow) that this is the wrong approach and I should use background processing to keep the UI thread responsive.</p>
  <p>Alright, but when I do that, I need to disable almost all of the user interface while the operation is in progress. (In my image editing example: while the image is being processed, the user should not be allowed to start another operation on this image.)</p>
  <p>But there does not seem to be an easy way to disable (almost) all of the main window in WPF. For longer operations the best solution would probably be to pop up a modal dialog box with a progress bar, blocking all access to the main window. But for a short operation (possibly only fractions of a second) it would probably be quite unpleasant to have a dialog window flashing up very briefly.</p>
  <p>So what am I supposed to do here? What is the best way in WPF to give feedback to users about short blocking operations?</p>