Есть ли способ изменить цвет фона в обозревателе решений в Visual Studio с помощью темы? - или любым другим способом в этом отношении?
Я могу изменить его, изменив настройки цвета в Windows, но, очевидно, это слишком сильно влияет.
Есть ли способ изменить цвет фона в обозревателе решений в Visual Studio с помощью темы? - или любым другим способом в этом отношении?
Я могу изменить его, изменив настройки цвета в Windows, но, очевидно, это слишком сильно влияет.
Только что созданное расширение VS для него менее чем за час, менеджер расширений поиска для "SExColor". Наслаждайтесь;)
@aloneguid... Должен был увидеть это давным-давно.. спасибо, сэр!
@ver (относительно решения vs 2008 для решения;) - подход типа B52, ковровая бомбардировка всего, что SysTreeView32 внутри devenv.exe. Возможный дополнительный параметр для желаемого цвета, в противном случае 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;
}
Не с помощью какой-либо конфигурации из самой Visual Studio.
Однако вы, вероятно, можете "взломать" оконный объект из Win32 API (искать "перечисление окна" ). После того, как у вас есть дескриптор окна, вы можете установить все необходимые символы.
Привет
/Роберт
Даже изменение стандартного цвета фона Windows не работает для обозревателя решений. Этот отчет Visual Studio указывает на проблему. Microsoft отметила это как "Закрыто - не будет исправлено" .
Это очень раздражает! Использование темной темы и наличие яркого белого решения Solution Explorer, висящего сбоку экрана, крайне раздражает.
Одно из возможных решений - не использовать обозреватель решений вообще. Powerivity Tools обеспечивает замену Solution Explorer под названием "Solution Navigator". В настоящее время он также жестко закодирован до белого. Но я думаю, что, вероятно, есть больше шансов заставить разработчиков этого инструмента добавить поддержку для изменения цветов, чем заставить Microsoft делать это в Visual Studio. (хотя Microsoft создала PPT.)
Вы можете использовать другой extenssion, у вас есть довольно большие возможности, чтобы сделать вашу Visual Studio более привлекательной;) (но я не уверен, если вы можете изменить фон Explorer Explorer)
http://visualstudiogallery.msdn.microsoft.com/20cd93a2-c435-4d00-a797-499f16402378