2009-05-18 14 views
7

Abbiamo una serie di rettangoli prodotti all'interno di una tela e sono nidificati in quest'ordine ScrollView> Canvas> VirtualizingStackPanel> Rectangles in XAML.WPF Virtualizzazione di una tela

Sembra che ci siano poche informazioni su Microsoft su ciò che è supportato dalla virtualizzazione e nei casi in cui non viene generato alcun errore, lo tratta semplicemente come uno StackPanel standard.

Dato che la nostra vista ha circa 60 rettangoli sullo schermo in qualsiasi momento su un totale di circa 800 sull'intera tela, i tempi di caricamento di circa 5 minuti sono inaccettabilmente lenti.

Abbiamo già provato a rimuovere ScrollView senza alcun effetto (oltre a rimuovere le barre di scorrimento le prestazioni non sono migliorate) e rimuovendo alcuni degli altri elementi di nidificazione, l'effetto netto sembra essere o non viene visualizzato nulla, oppure è visualizzato ma è ancora lento.

La soluzione migliore che ho trovato finora un pezzo campione di VirtualizedCanvas codice ware libero ma è molto molto limitato e non supporta nulla annidati al suo interno, infatti l'unico input che ci vuole è una raccolta di elementi dell'interfaccia utente.

Questa soluzione ignora fondamentalmente l'associazione dati e richiede a te di restituire un Canvas completato, questo rende tutti i nostri codici e convertitori esistenti piuttosto inutili, e sarebbe un'importante rielaborazione da implementare.

C'è un modo per ritagliare semplicemente la tela virtuale per disegnare solo i 60 elementi sullo schermo?

risposta

Problemi correlati