Wie kann man deaktivieren Hardware-Beschleunigung in Wpf?
-
24-09-2019 - |
Frage
Wie ist das Verfahren für die Hardwarebeschleunigung in WPF zu deaktivieren? Was ist es genau? Ist es ein Windows-Einstellung, eine Visual Studio-Einstellung oder etwas, das Sie in dem Code Ihres WPF-Projektes ändern? Wird es wirken sich nur auf das Programm, das Sie laufen lassen oder wird es durch systemweite?
Lösung
Das ist eine systemweite Einstellung, von dem Desktop mit der rechten klicken, um ein Popup-Menü aufzurufen, klicken Sie auf Eigenschaften, und deaktivieren Sie Hardwarebeschleunigung für die Videoeinstellungen in dort umsehen oder dass es eine System-Tray-Symbol sein für die Grafikeinstellungen. Dies ist systemweit und nicht lokal.
Hope, das hilft, Freundliche Grüße, Tom.
Andere Tipps
Sie können es auf einem Window
Ebene deaktivieren ab .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);
}
}
oder Sie können SourceInitialized
Ereignis des Fensters abonnieren und das gleiche tun.
Alternativ können Sie href="https://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.processrendermode.aspx"> Satz auf Prozess-Ebene Die Rangfolge für Software-Rendering ist: RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
Es ist eine Maschine weite Registrierungseinstellung. Siehe Graphics Rendering-Registrierungseinstellungen in der WPF-Dokumentation für den Registrierungsschlüssel und andere in dem Anpassen WPF-Rendering in Bezug Details.
Der Schlüssel aufgelistet ist:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration
Das MSDN-Dokument ist "nicht verfügbar" für .NET 4.5, so ist dies eine depricated Option sein kann, dass nur in 4.0 funktioniert oder unten.
In Version 4.0 können Sie auch RenderOptions.ProcessRenderMode
verwenden, um einen Prozess breit bevorzugt eingestellt ( http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.processrendermode.aspx ).