Print preview wish list item...
Posted: Wed Jan 19, 2011 4:34 pm
This is just a wish list item, not a bug. I am hooking in printing right now, which is really pretty cool, and came across something that just does not "feel right" when I interact with it.
On the print preview page you have the zoom and margins controls refreshing, presumably, using some ValueChanged event. If you try to change the zoom control by dragging it, every little movement causes a refresh, which takes a noticeable amount of time. The slider control is nearly impossible to drag. Likewise, if you are trying to use the UpDown arrows in the Margins controls, every little change causes a refresh. The result is that you can not easily spin up or down a few units.
Can I suggest that, in that ValueChanged event you do not actually perform the refresh. Instead start a timer that will wait, say, 350 milliseconds (you can play with this time increment until you find one that feels right). While the value keeps changing, supress the refresh. Finally, when no other changes take place, then fire the refresh using the last settings. That would let the user actually click the up and down arrows or drag the slider more than one tiny increment at a time. The time increment is short enough that the user will not really notice it. It is long enough that if the user is attempting to make a change which is more than one increment, he can do so without the refresh kicking in and stopping things.
On the print preview page you have the zoom and margins controls refreshing, presumably, using some ValueChanged event. If you try to change the zoom control by dragging it, every little movement causes a refresh, which takes a noticeable amount of time. The slider control is nearly impossible to drag. Likewise, if you are trying to use the UpDown arrows in the Margins controls, every little change causes a refresh. The result is that you can not easily spin up or down a few units.
Can I suggest that, in that ValueChanged event you do not actually perform the refresh. Instead start a timer that will wait, say, 350 milliseconds (you can play with this time increment until you find one that feels right). While the value keeps changing, supress the refresh. Finally, when no other changes take place, then fire the refresh using the last settings. That would let the user actually click the up and down arrows or drag the slider more than one tiny increment at a time. The time increment is short enough that the user will not really notice it. It is long enough that if the user is attempting to make a change which is more than one increment, he can do so without the refresh kicking in and stopping things.