Come si fa a disattivare l'accelerazione hardware in WPF?
-
24-09-2019 - |
Domanda
Qual è la procedura per disattivare l'accelerazione hardware in WPF? Che cosa si tratta esattamente? E 'un'impostazione, un ambiente studio visivo o qualcosa si altera nel codice del progetto WPF finestre? Sarà riguardano solo il programma che si sta eseguendo o sarà per tutto il sistema?
Soluzione
Questo è un livello di sistema impostazione, dal desktop, fate clic destro per aprire un menu a comparsa, cliccare sulle proprietà, e guardarsi intorno in là per le impostazioni video per l'accelerazione hardware disabilitare o che ci possa essere una barra di sistema per le impostazioni grafiche. Questo è a livello di sistema e non locale.
Spero che questo aiuti, I migliori saluti, Tom.
Altri suggerimenti
È possibile disattivarla a livello Window
a partire dal .Net 3.5 SP1.
public partial class MyWindow : Window
{
public MyWindow()
: base()
{
InitializeComponent();
}
protected override void OnSourceInitialized(EventArgs e)
{
var hwndSource = PresentationSource.FromVisual(this) as HwndSource;
if (hwndSource != null)
hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly;
base.OnSourceInitialized(e);
}
}
oppure è possibile iscriversi alla manifestazione SourceInitialized
della finestra e fare lo stesso.
In alternativa puoi sul livello di processo :
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
L'ordine di precedenza per il rendering software è:
- chiave di registro DisableHWAcceleration
- ProcessRenderMode
- RenderMode (per-target)
Si tratta di un'impostazione del Registro a livello di computer. Vedere di rendering della grafica impostazioni del Registro nella documentazione di WPF per la chiave di registro e altri dettagli relativi alla personalizzazione resa WPF.
La chiave è elencata:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration
Il documento MSDN è "non disponibile" per .NET 4.5, quindi questo potrebbe essere un'opzione depricated che funziona solo in 4,0 o al di sotto.
Nella versione 4.0, è anche possibile utilizzare RenderOptions.ProcessRenderMode
per impostare una vasta preferenza processo ( http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.processrendermode.aspx ).