As janelas do WPF não cooperam com temas não oficiais

2

Algum tempo atrás, decidi corrigir meu uxtheme.dll (usando o Patch de tema universal ) para permitir o uso de temas de janela não oficiais. O problema é que os aplicativos WPF parecem ignorar o tema personalizado para controles nativos do Windows (como barras de rolagem e botões) e, em vez disso, usam o tema clássico para eles.

Primeiramente, percebi isso com o Visual Studio 2010:

Euacheiqueeraumbugnopróprioprograma,mascriarmeupróprioaplicativoWPFforneceomesmoresultado:

O Google revela que não sou a única pessoa com esse problema, mas não encontrei uma solução.

Existe algo que eu possa fazer sobre isso? Devo tentar um diferente uxtheme.dll patcher? Ou é isso que eu recebo por tentar [suspiro] personalizar o Windows?

    
por Sasha Chedygov 03.08.2010 / 00:41

4 respostas

2

Atualmente não há nada que você possa fazer sobre isso. Aplicativos WPF têm seu próprio tema [que não é acoplado ao tema do Windows]. A melhor coisa que eu poderia sugerir é que você escreva um aplicativo ou crie sua própria dll que faça com que o tema do WPF mude para o que você gosta, você obteria muito reconhecimento por isso;)

    
por 03.08.2010 / 01:09
1

Existe uma boa solução para este problema. O procedimento a seguir dirá ao WPF para usar o tema do Windows Vista / 7 em vez do Windows Basic (para os controles).

O motivo pelo qual o uso de um novo tema causa esses problemas é que o wpf descobre qual tema é definido, verificando o nome do arquivo do estilo visual atualmente ativado. Se o nome é "aero.msstyles", ele usa o tema aero. Se é "luna.msstyles", ele vai um passo além e verifica o esquema de cores atual para afinar as cores (NormalColor, Metálico, Homestead são os esquemas de cores para o Windows XP, o Windows Vista vala o conceito de esquema de cores totalmente a favor de janelas aero). Há também um tema embutido no wpf para "royale.msstyles". Se o arquivo de tema tiver um nome que o wpf não reconheça, ele apenas usará o tema básico do Windows.

A solução alternativa? Renomeie seu estilo visual de "{whatever} .stystyles" para "aero.msstyles" e modifique os arquivos ".theme" associados no bloco de notas para dar conta do novo nome (observe que agora você só pode aplicar o estilo visual com um tema Arquivo). O WPF agora mostra o estilo Windows Vista em vez do Windows Basic; -).

    
por 22.04.2012 / 04:30
0

Também fiz esta pergunta há algum tempo e não consegui encontrar nenhuma resposta.

link

O único tema que o Visual Studio 2010 suporta é o tema aero padrão. Embora eu tenha notado que alguns temas suportam isso, mas a maioria não suporta.

Eu tentei todas as coisas, basicamente, executando o VS2010 como administrador, executando-o no modo de compatibilidade, instalando / desinstalando o SP1, etc.

Precisamos seguir as regras da Microsoft: P

    
por 31.01.2012 / 18:56
0

plz excuse, I didn't have enough 'points' to comment or clarify from the context of AlexKven's answer

Só queria adicionar, para os interessados…

no arquivo *.theme , você deve especificar aero.msstyles no Titlecase. por isso deve ler algo como Path=%ResourceDir%\themes\path\to\Aero.msstyles em oposição a ...\aero.msstyles .

veja também: github.com/riverar/uxstyle

    
por 18.02.2017 / 08:06