Ho un controllo WPF complesso che disegna un sacco di primitive nel suo OnRender (è un po 'come una mappa). Quando una piccola parte di essa cambia, mi piacerebbe solo ri-emettere i comandi di rendering per gli elementi interessati, invece di eseguire l'intero OnRender. Mentre sto bene con le prestazioni della mia funzione OnRender su un ridimensionamento o qualsiasi altra cosa, non è abbastanza veloce per l'evidenziazione dei primitivi basata sul mouse hover.È possibile InvalidateVisual() su una determinata regione anziché su un controllo WPF intero?
Attualmente l'unico modo per sapere come forzare l'aggiornamento di uno schermo è chiamare InvalidateVisual(). Nessun modo per inviare una regione rect sporca per invalidare.
La più bassa granularità della composizione dello schermo WPF è l'elemento dell'interfaccia utente? Avrò bisogno di fare i miei rendering di primitivi in un target intermedio e poi usare InvalidateVisual() per aggiornare allo schermo?
Ti ignorare UIElement.OnRender disegnare tutto all'interno della UIElement, o se l'elemento ancora bambini normali visivi? –