Изменить цвет фона в окне Обозреватель решений в Visual студии



есть ли способ изменить цвет фона в окне Обозреватель решений в Visual Studio с помощью темы? - или любой другой способ, если уж на то пошло?



Я могу изменить его, изменив настройки цвета в Windows, но, очевидно, это влияет слишком много.

727   5  

5 ответов:

только что создал VS расширение для этого в течение часа, менеджер расширения поиска для "SExColor". Наслаждайтесь ;)

@aloneguid ...надо было давно это увидеть.. спасибо, сэр !

@ver (относительно решения vs 2008 для решения;) - тип подхода B52, ковровая бомбардировка на все, что является SysTreeView32 внутри devenv.исполняемый. Возможные дополнительные параметры для желаемого цвета, в противном случае RGB(220,220,220) - лучше всего работает для меня

#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;
}

даже изменение стандартного цвета фона Windows не работает для Обозревателя решений. Это Visual Studio сообщить об ошибке упоминает эту проблему. Microsoft отметила это как " закрыто - не будет исправлено."

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

одно из возможных решений-вообще не использовать Обозреватель решений. Элемент Производительность Мощность Инструменты обеспечивает замену обозревателя решений под названием " навигатор решений."В настоящее время он также жестко белый. Но я думаю, что, вероятно, есть больше шансов заставить разработчиков этого инструмента добавить поддержку для изменения цветов, чем заставить Microsoft сделать это в Visual Studio. (несмотря на то, что Microsoft создала PPTs.)

не каким-либо образом конфигурации из самой Visual Studio.

однако вы можете, вероятно," взломать "объект window из Win32 API (посмотрите"перечисление окон"). Если у вас есть дескриптор окна, вы можете установить все характеристики, которые вы хотите.

в отношении

/Роберт

вы можете использовать другие расширения, у вас есть довольно большие возможности, чтобы сделать вашу Visual Studio более красивой;) (но я не уверен, что вы можете изменить фон обозревателя решений)

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

Comments

    Ничего не найдено.