2010-09-16 8 views

risposta

44

"ScrollViewer permette attualmente due modalità di scorrimento:. Scorrimento fluido pixel-per-pixel (CanContentScroll = false) o discreto elemento per elemento scorrimento (CanContentScroll = true) Attualmente WPF supporta virtualizzazione UI solo quando lo scorrimento per voce Lo scrolling basato su pixel è anche chiamato "scrolling fisico" e lo scrolling basato sugli oggetti è anche chiamato "scrolling logico". "

virtualizzazione richiede lo scorrimento elemento-base in modo che possa tenere traccia delle unità logiche (articoli) attualmente in vista ... Impostazione del ScrollViewer di pixel-based scrolling loro non è più il concetto di unità logiche, ma solo i pixel !! !

5

UI Virtualization

Spesso mi sono chiesto se c'è un modo per aggirare questa limitazione. Bene, tutto è possibile, ma non è disponibile la soluzione easy. Dovresti ri-implementare parti significative dell'attuale logica di virtualizzazione per combinare lo scrolling basato su pixel con la virtualizzazione dell'interfaccia utente. Dovresti anche risolvere alcuni problemi interessanti che ne derivano. Ad esempio, come si calcola la dimensione del pollice quando i contenitori degli articoli hanno altezze diverse? (Ricorda che non conosci l'altezza dei container virtualizzati: conosci solo l'altezza dei contenitori attualmente visualizzati.) Puoi assumere una media basata sulle altezze che conosci, oppure puoi tenere un elenco con altezza delle voci quando gli oggetti vengono portati in memoria (il che aumenterebbe la precisione delle dimensioni del pollice in quanto l'utente interagisce con il controllo). Potresti anche decidere che lo scorrimento basato su pixel funzioni solo con elementi della stessa altezza: ciò semplificherebbe la soluzione. Quindi, sì, potresti trovare una soluzione per ovviare a questa limitazione, ma non è banale.

Problemi correlati