Pergunta

Qual é o procedimento para desativar a aceleração de hardware no WPF? O que é isso exatamente? É uma configuração do Windows, uma configuração do Visual Studio ou algo que você altera no código do seu projeto WPF? Isso afetará apenas o programa que você está executando ou será por todo o sistema?

Foi útil?

Solução

Essa é uma configuração ampla do sistema, na área de trabalho, clique com o botão direito do mouse para exibir um menu pop -up, clicar em propriedades e procurar lá as configurações de vídeo para desativar a aceleração de hardware ou que pode haver um ícone de bandeja do sistema para as configurações de gráficos . Isso é amplo e não local.

Espero que isso ajude, cumprimentos, Tom.

Outras dicas

Você pode desativá -lo em um Window nível a partir do .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);
    }
}

ou você pode se inscrever SourceInitialized evento da janela e faça o mesmo.

Alternativamente, você pode Defina -o no nível do processo:

RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;

A ordem de precedência para renderização de software é:

  1. Desative a chave do registro deceleração
  2. ProcessRenderMode
  3. Rendermode (por alvo)

É uma configuração de registro em toda a máquina. Ver Configurações de registro de renderização gráficas Nos documentos WPF para a chave do registro e outros detalhes relacionados à personalização da renderização do WPF.

A chave listada é:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration

O documento MSDN "não está disponível" para .NET 4.5, portanto, essa pode ser uma opção privada que funciona apenas em 4.0 ou abaixo.

Na versão 4.0, você também pode usar RenderOptions.ProcessRenderMode Para definir uma ampla preferência do processo (http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.processrendermode.aspx).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top