Como alguém desative a aceleração do hardware no WPF?
-
24-09-2019 - |
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?
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 é:
- Desative a chave do registro deceleração
- ProcessRenderMode
- 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).