temas - Cambiar el color de fondo de Solution Explorer en Visual Studio
visual studio 2017 themes (5)
¿Hay alguna manera de cambiar el color de fondo del Explorador de soluciones en Visual Studio utilizando un tema? - o de cualquier otra manera para ese asunto?
Puedo cambiarlo cambiando la configuración de color de toda la ventana, pero obviamente eso afecta demasiado.
@aloneguid ... debería haberlo visto hace mucho tiempo ... ¡gracias, señor!
@ver (con respecto a la solución de 2008 frente a la solución;) - un enfoque de tipo B52, bombardeo de alfombras en cualquier cosa que sea SysTreeView32 dentro de un devenv.exe. Posible param adicional para el color deseado, de lo contrario RGB (220,220,220) - funciona mejor para mí
#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;
}
Acaba de crear la extensión VS para eso en menos de una hora, el administrador de extensiones de búsqueda de "SExColor". Disfrutar;)
Incluso cambiar el color de fondo estándar de Windows no funciona para el Explorador de soluciones. Este informe de error de Visual Studio menciona el problema. Microsoft ha marcado esto como "Cerrado - No se Corrige".
¡Lo cual es muy irritante! Usar un tema oscuro y tener un Solution Explorer blanco y brillante colgando del lado de la pantalla es extremadamente molesto.
Una posible solución es no usar Solution Explorer en absoluto. Productivity Power Tools proporciona un reemplazo de Solution Explorer llamado "Solution Navigator". Actualmente también está codificado en blanco. Pero creo que probablemente exista una mayor posibilidad de que los desarrolladores de esa herramienta agreguen soporte para modificar los colores en lugar de lograr que Microsoft lo haga en Visual Studio. (a pesar de que Microsoft creó los PPT).
No por ningún medio de configuración de Visual Studio.
Sin embargo, es probable que puedas "piratear" el objeto de la ventana de la API de Win32 (consulta "enumeración de la ventana"). Una vez que tenga el identificador de ventana, puede establecer todas las características que desee.
Saludos
/ Robert
Podría usar otra extensión, tiene posibilidades bastante grandes para hacer que su Visual Studio sea más atractiva;) (pero no estoy seguro de si podría cambiar el fondo de Solution Explorer)
http://visualstudiogallery.msdn.microsoft.com/20cd93a2-c435-4d00-a797-499f16402378