Ho un controllo utente WPF per il quale è necessario forzare il rendering in RenderMode.SoftwareOnly
. Dal momento che sto usando .NET 3.5, ho dovuto fare qualcosa di simile,Modalità di rendering software - WPF
var hwndSource = PresentationSource.FromVisual(this) as HwndSource;
if (hwndSource != null)
{
hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly;
}
Ma questo non sta funzionando relativa alla mia domanda, il programma WPF si blocca su alcune macchine e disattivando l'accelerazione hardware a livello di registro sembra per risolvere il problema.
Il codice sopra riportato è scritto nell'evento Loaded
della finestra. Se sono corretto, l'evento Loaded
si verifica dopo il rendering dei controlli (MSDN). Quindi ha senso avere il codice sopra in quell'evento? In caso contrario, quale evento sarebbe appropriato per questo?
Inoltre, l'impostazione di RenderMode
su un elemento visivo interessa i bambini? O devo impostare questo in modo specifico per ogni elemento figlio?
Qualsiasi aiuto sarebbe fantastico!
Ciao, sono curioso. La soluzione del dispatcher ti ha aiutato? – HCL