I've been experimenting with using a grid to display images (digital photos).
The reason I prefer the grid approach to something like Shell.Explorer is that using a grid gives me additional flexibility for filtering and ordering images as well as an opportunity to provide additional data about each image.
My frustration with using a grid for images is that its refresh begins to slow down when there's a large number of image files being managed and one is near the bottom of the grid and navigating by up and down arrows. Specifically what I see happening is images are displayed twice while the grid's dynamic* properties are updated.
I'm wondering if there's a way for a grid to LockScreen before it starts to update itself (before it applies all its dynamic* property updates) and unlock the screen after all these dynamic* updates have been applied.
Any suggestions on what events I would use to set LockScreen to True and then restore it to False once a grid has finished all its updates?
One half-baked thought was to LockScreen = True in the grid's KeyPress and/or Scrolled events, but where to set LockScreen to False? Possibly have my dynamic* property that's updating image controls check to see if its in the last visible row of the grid and set Lockscreen to False at this point ... or start a timer with X millisecond delay to restore LockedScreen to False after some grid event occurs near the end of the grid refresh cycle?
I'm also looking for any ideas on peeking ahead in the keyboard buffer to see if a user hit the up/down or pageup/pagedown keys multiple times, performing the appropriate scrolls (WITHOUT doing a visual update after each keystroke) and THEN updating the grid control.
Any ideas appreciated,
Malcolm
The reason I prefer the grid approach to something like Shell.Explorer is that using a grid gives me additional flexibility for filtering and ordering images as well as an opportunity to provide additional data about each image.
My frustration with using a grid for images is that its refresh begins to slow down when there's a large number of image files being managed and one is near the bottom of the grid and navigating by up and down arrows. Specifically what I see happening is images are displayed twice while the grid's dynamic* properties are updated.
I'm wondering if there's a way for a grid to LockScreen before it starts to update itself (before it applies all its dynamic* property updates) and unlock the screen after all these dynamic* updates have been applied.
Any suggestions on what events I would use to set LockScreen to True and then restore it to False once a grid has finished all its updates?
One half-baked thought was to LockScreen = True in the grid's KeyPress and/or Scrolled events, but where to set LockScreen to False? Possibly have my dynamic* property that's updating image controls check to see if its in the last visible row of the grid and set Lockscreen to False at this point ... or start a timer with X millisecond delay to restore LockedScreen to False after some grid event occurs near the end of the grid refresh cycle?
I'm also looking for any ideas on peeking ahead in the keyboard buffer to see if a user hit the up/down or pageup/pagedown keys multiple times, performing the appropriate scrolls (WITHOUT doing a visual update after each keystroke) and THEN updating the grid control.
Any ideas appreciated,
Malcolm