Как отключить аппаратное ускорение в wpf? - PullRequest
14 голосов
/ 31 января 2010

Какова процедура отключения аппаратного ускорения в WPF? Что именно? Это настройки Windows, визуальные настройки студии или что-то, что вы изменяете в коде вашего проекта wpf? Это повлияет только на программу, которую вы запускаете, или на всю систему?

Ответы [ 4 ]

32 голосов
/ 21 марта 2012

Вы можете отключить его на уровне 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;

Порядок приоритетов для рендеринга программного обеспечения:

  1. Отключить раздел реестра HWAcceleration
  2. ProcessRenderMode
  3. RenderMode (для цели)
24 голосов
/ 31 января 2010

Это параметр реестра для всей машины. См. Параметры реестра для визуализации графики в документации WPF для получения информации о ключе реестра и других деталях, относящихся к настройке отображения WPF.

Ключ в списке: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration

Документ MSDN «недоступен» для .NET 4.5, поэтому это может быть вариант с ограничениями, который работает только в версии 4.0 или ниже.

16 голосов
/ 10 апреля 2012

В версии 4.0 вы также можете использовать RenderOptions.ProcessRenderMode для установки предпочтения для всего процесса (http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.processrendermode.aspx).

0 голосов
/ 31 января 2010

Это общесистемная настройка: на рабочем столе щелкните правой кнопкой мыши, чтобы вызвать всплывающее меню, нажмите на свойства и посмотрите там настройки видео, чтобы отключить аппаратное ускорение или что на панели задач может бытьнастройки графики.Это общесистемное, а не локальное.

Надеюсь, это поможет, С уважением, Том.

...