Как одно отключение аппаратного ускорения в WPF?
-
24-09-2019 - |
Вопрос
Какова процедура отключения аппаратного ускорения в WPF? Что именно это именно? Это настройка Windows, Visual Studio Setting или что вы изменете в коде вашего проекта WPF? Повлияет ли это только на программу, которую вы работаете, или это будет в системе?
Решение
Это широкая настройка системы с рабочего стола, щелкните правой кнопкой мыши, чтобы открыть всплывающее меню, щелкните свойства, и осмотрите туда для параметров видео, чтобы отключить аппаратное ускорение или что может быть значок системного лотка для настроек графики. Отказ Это широкая система, а не местная.
Надеюсь, это поможет, наилучшие пожелания, Том.
Другие советы
Вы можете отключить его на Window
Уровень начиная с .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);
}
}
или вы можете подписаться на SourceInitialized
событие окна и сделайте то же самое.
В качестве альтернативы вы можете Установите его на уровне процесса:
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
Порядок приоритета для рендеринга программного обеспечения:
- Ключ реестра Disablehwacceleration.
- Процессрандермодный
- Rendermode (за цель)
Это широкая настройка реестра. Видеть Графические настройки реестра реестра В документах WPF для ключа реестра и другие детали, относящиеся к настройке рендеринга WPF.
Ключ перечислен:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration
Документ MSDN является «недоступен» для .NET 4.5, так что это может быть нарушенным вариантом, который работает только в 4,0 или ниже.
В версии 4.0 вы также можете использовать RenderOptions.ProcessRenderMode
Установить широкое предпочтение процесса (http://msdn.microsoft.com/en-us/library/system.windows.media.renderOptions.processRendermode.aspx.).