2009-11-25 12 views
7

Ho WPF ListBox che mostra molti dati. Ho bisogno di uno scorrimento fluido, quindi ho impostato ListBox.ScrollViewer.CanContentScroll su False che disabilita la virtualizzazione. Ora quando apro la scheda in cui è posizionato questo ListBox, non vedo nulla per pochi secondi perché ListBox sta caricando/creando elementi/rendering. Ho anche un controllo che mostra alcune animazioni che indicano che l'applicazione è in esecuzione e l'utente dovrebbe attendere un po '.Come mostrare qualche animazione mentre il controllo è in rendering?

Come posso visualizzare questo controllo mentre ListBox non è disponibile?

+0

forse più dettagli sarebbero utili? Cose come ... in che lingua e struttura stai lavorando ... Purtroppo termini come "ListBox" sono usati in molti posti. – Paul

+0

È contrassegnato con WPF. – GraemeF

+0

quanti oggetti hai nella lista? –

risposta

2

Aggiungi una griglia nella posizione della casella di riepilogo e inserisci al suo interno il ListBox e il controllo dell'animazione. In questo modo sono collocati nella stessa posizione. Il controllo dell'animazione dovrebbe essere in cima all'ordine z e così visualizzato. Una volta che il ListBox ha terminato il caricamento, si nasconde quindi il controllo dell'animazione e quindi viene mostrato il ListBox. Ogni volta che è necessario eseguire un'altra lunga operazione, il controllo dell'animazione sarà nuovamente visibile.

+2

Come determinare che la listbox sia già stata renderizzata? E il rendering viene eseguito nello stesso thread che "anima" l'animazione, quindi non ci sarà alcun effetto. O non ho ragione? Sto già usando questa tecnica, ma quando ho bisogno di mostrare che è in corso un'operazione di background lunga (che funziona in un altro thread) (non-gui). – levanovd

Problemi correlati