Questo thread appartiene a questo
Sto chiedendo dove ho bisogno di inserire la soluzione da questo
Ho un’applicazione WPF che ha problemi di prestazioni su alcuni client con Windows 7. Su Windows XP tutto funziona velocemente. L’applicazione ha un MainShell e alcuni Child-Windows. Il MainShell si blocca a volte su alcune macchine, così come le windows secondarie. Ora, devo inserire la soluzione alternativa dal thread dal link sopra in tutte le windows? Ci sono ancora altre soluzioni a riguardo?
Ho lavorato su un’applicazione che è andata bene praticamente su tutto, ma i controlli WPF erano lenti su alcuni laptop (Lenovo). Stava rallentando e congelando e generalmente inibendo l’uso.
Ho fatto quanto segue:
Potrebbe essere che solo il numero 3 fosse richiesto, ma ha funzionato. Pubblicare solo qui in modo che le persone non perdano i giorni in cui ho perso in profiler di memoria, ecc.
Nel mio caso ha funzionato aggiungendo quel codice alla finestra principale. Tuttavia, l’ho semplificato un po ‘:
public partial class MyMainWindow : Window { public MyMainWindow() { GotFocus += WindowGotFocus; } private void WindowGotFocus(object sender, RoutedEventArgs e) { WindowInteropHelper helper = new WindowInteropHelper(this); var mainWindowAutomationElement = AutomationElement.FromHandle(helper.Handle); Automation.AddStructureChangedEventHandler(mainWindowAutomationElement, TreeScope.Element, delegate {}); GotFocus -= WindowGotFocus; } }
L’unico problema con questo approccio, nella mia macchina, è che la finestra del debugger si riempie di messaggi come:
Tutto accade molte volte. Non ho potuto correggere questi messaggi, ma ora la mia applicazione è più veloce.