57 votes

Modifier la couleur d'arrière-plan de l'explorateur de solutions dans Visual Studio

Existe-t-il un moyen de modifier la couleur d'arrière-plan de l'explorateur de solutions dans Visual Studio à l'aide d'un thème ? - ou tout autre moyen ?

Je peux le changer en modifiant les paramètres de couleur de Windows, mais cela affecte évidemment trop de choses.

35voto

aloneguid Points 2122

Je viens de créer une extension VS pour cela en moins d'une heure, recherchez "SExColor" dans le gestionnaire d'extensions. Profitez-en ;)

10voto

user1195662 Points 61

@aloneguid ...j'aurais dû voir cela il y a longtemps... merci monsieur !

@ver (concernant vs 2008 solution pour solution ;) - une approche de type B52, bombardement de tapis sur tout ce qui est SysTreeView32 à l'intérieur d'un devenv.exe. Paramètre supplémentaire possible pour la couleur désirée, sinon RGB(220,220,220) - fonctionne mieux pour moi.

#include <windows.h>
#include "psapi.h"
#include "shlwapi.h"
#include "commctrl.h"

COLORREF clr = RGB(220,220,220);

BOOL CALLBACK wenum( HWND hwnd, LPARAM lParam)
{
   const UINT cb = 261;
   static wchar_t    name[] = L"SysTreeView32",
                     tmp[cb] = {0};
   if( ::GetClassNameW( hwnd, tmp, 260 ) && 0 == _wcsicmp( name, tmp ) )
   {
      ::SendMessageW( hwnd, TVM_SETBKCOLOR, 0, (LPARAM)clr );
   }

   return TRUE;
}

BOOL CALLBACK EnumTops(HWND hwnd, LPARAM lParam) 
{
    DWORD             dwThreadId  = 0, 
                     dwProcessId = 0;
    HINSTANCE         hInstance;
   static wchar_t derVS[]     = L"devenv.exe";
   wchar_t  name[_MAX_PATH]   = {0},
            *exe              = 0;

    HANDLE hProcess;
   if (!hwnd)  return TRUE;     // Not a window
   if (!::IsWindowVisible(hwnd)) return TRUE;       // Not visible

   if (!SendMessage(hwnd, WM_GETTEXT, sizeof(name), (LPARAM)name))
      return TRUE;      // No window title
   dwThreadId = GetWindowThreadProcessId(hwnd, &dwProcessId);
   hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
   if( !GetModuleFileNameEx(hProcess, 0, name, sizeof(name))) goto exit;

   exe = ::PathFindFileNameW( name );
   if( (void*)exe == (void*)name ) goto exit; // mhm? maybe not exit?

   if( _wcsicmp( derVS, exe ) ) goto exit;

   EnumChildWindows( hwnd, wenum, (LPARAM)hProcess );

exit:
   CloseHandle(hProcess);
   int res = GetLastError();
   return res;
}

int wmain(int argc, wchar_t * argv[]) 
{
   if( argc >= 2 )
   {
      wchar_t *end = 0;
      long l = wcstol( argv[1], &end, 16 );
      clr = (DWORD)l;
   }
   ::EnumWindows(EnumTops, NULL);
   return 0;
}

4voto

sharkin Points 4935

Pas par un moyen de configuration à partir de Visual Studio lui-même.

Vous pouvez cependant probablement "pirater" l'objet fenêtre à partir de l'API Win32 (recherchez "window enumeration"). Une fois que vous avez le handle de la fenêtre, vous pouvez définir tous les caractères que vous voulez.

Salutations

/Robert

4voto

Clever Human Points 3174

Même la modification de la couleur d'arrière-plan standard de Windows ne fonctionne pas pour l'explorateur de solutions. Cet outil de Visual Studio rapport de bogue mentionne le problème. Microsoft a marqué ce problème comme "Fermé -- Ne sera pas résolu".

Ce qui est très irritant ! Utiliser un thème sombre et avoir un Solution Explorer blanc et lumineux accroché sur le côté de l'écran est extrêmement ennuyeux.

Une solution possible est de ne pas utiliser du tout l'explorateur de solutions. Le site Outils de productivité fournit un remplacement de l'explorateur de solutions appelé "Solution Navigator". Actuellement, il est également codé en dur en blanc. Mais je pense qu'il y a probablement plus de chances d'obtenir des développeurs de cet outil qu'ils ajoutent un support pour modifier les couleurs que d'obtenir de Microsoft qu'il le fasse dans Visual Studio. (même si Microsoft a créé les PPTs).

3voto

Jacek Points 1575

Vous pourriez utiliser d'autres extensions, vous avez de grandes possibilités pour rendre votre Visual Studio plus beau ;) (mais je ne suis pas sûr qu'il soit possible de modifier l'arrière-plan de l'explorateur de solutions).

http://visualstudiogallery.msdn.microsoft.com/20cd93a2-c435-4d00-a797-499f16402378

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X