Visual studio 在Visual Studio中更改解决方案资源管理器的背景色

Visual studio 在Visual Studio中更改解决方案资源管理器的背景色,visual-studio,Visual Studio,是否有任何方法可以使用主题更改Visual Studio中解决方案资源管理器的背景色或者其他什么方法 我可以通过更改windows范围的颜色设置来更改它,但显然这影响太大。不是通过Visual Studio本身的任何配置方式 但是,您可能可以从Win32 API“黑客”窗口对象(查找“窗口枚举”)。拥有窗口控制柄后,可以设置所需的所有特征 问候 /Robert即使更改标准Windows背景色也不适用于解决方案资源管理器。这个VisualStudio提到了这个问题。Microsoft已将此标记为“

是否有任何方法可以使用主题更改Visual Studio中解决方案资源管理器的背景色或者其他什么方法


我可以通过更改windows范围的颜色设置来更改它,但显然这影响太大。

不是通过Visual Studio本身的任何配置方式

但是,您可能可以从Win32 API“黑客”窗口对象(查找“窗口枚举”)。拥有窗口控制柄后,可以设置所需的所有特征

问候


/Robert

即使更改标准Windows背景色也不适用于解决方案资源管理器。这个VisualStudio提到了这个问题。Microsoft已将此标记为“已关闭--无法修复”

这太令人恼火了!使用黑色主题和在屏幕一侧挂一个亮白色的解决方案浏览器是非常烦人的


一种可能的解决方案是根本不使用解决方案资源管理器。提供了一个名为“解决方案导航器”的解决方案浏览器替代品。它目前也硬编码为白色。但我认为,与让微软在VisualStudio中进行修改相比,让该工具的开发人员添加对修改颜色的支持可能更有可能。(即使是微软创建了PPT。)

在不到一个小时的时间里刚刚创建了VS扩展,在扩展管理器中搜索“SExColor”。享受;)

@aloneguid…早就应该看到这一点了。。谢谢你,先生

@ver(关于vs 2008 solution for solution;)-一种B52类型的方法,地毯式轰炸devenv.exe中的SYSTREView32。所需颜色可能有额外参数,否则RGB(220220)-最适合我

#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;
}
#包括
#包括“psapi.h”
#包括“shlwapi.h”
#包括“commctrl.h”
COLORREF clr=RGB(220220);
BOOL回调wenum(HWND-HWND,LPARAM-LPARAM)
{
常数cb=261;
静态wchar_t name[]=L“SYSTREVIEW32”,
tmp[cb]={0};
if(::GetClassNameW(hwnd,tmp,260)和&0==\uwcsicmp(name,tmp))
{
::SendMessageW(hwnd,TVM_SETBKCOLOR,0,(LPRAM)clr);
}
返回TRUE;
}
BOOL回调枚举(HWND-HWND、LPARAM-LPARAM)
{
DWORD dwThreadId=0,
dwProcessId=0;
HINSTANCE HINSTANCE;
静态wchar_t derVS[]=L“devenv.exe”;
wchar\u t name[\u MAX\u PATH]={0},
*exe=0;
处理hProcess;
如果(!hwnd)返回TRUE;//不是窗口
if(!::IsWindowVisible(hwnd))返回TRUE;//不可见
if(!SendMessage(hwnd,WM_GETTEXT,sizeof(name),(LPARAM)name))
返回TRUE;//没有窗口标题
dwThreadId=GetWindowThreadProcessId(hwnd和dwProcessId);
hProcess=OpenProcess(PROCESS\u ALL\u ACCESS,FALSE,dwProcessId);
如果(!GetModuleFileNameEx(hProcess,0,name,sizeof(name)))转到退出;
exe=::PathFindFileName(名称);
如果((void*)exe==(void*)name)转到退出;//mhm?可能不退出?
如果(_wcsicmp(derVS,exe))转到退出;
EnumChildWindows(hwnd、wenum、(LPARAM)hProcess);
出口:
CloseHandle(hProcess);
int res=GetLastError();
返回res;
}
int wmain(int argc,wchar_t*argv[])
{
如果(argc>=2)
{
wchar_t*end=0;
长l=wcstol(argv[1],&end,16);
clr=(DWORD)l;
}
::EnumWindows(EnumTops,NULL);
返回0;
}

您可以使用其他扩展,您有很大的可能性使Visual Studio更美观;)(但我不确定您是否可以更改解决方案资源管理器的背景)


我希望我能做到这一点。否则就不需要暮光之城主题:-(VS2010有什么办法吗?可能不是通过“正常”的窗口管理,因为VS2010是用WPF制作的。可能有其他方法来完成这项任务,尽管可能是“合法的”方法。我还想在VS2010中更改此窗格的颜色方案。您能告诉我们源代码吗?这可能是github上的吗?我之所以问这个问题,是因为我想在“服务器资源管理器”、“待办资源管理器”、“属性”、“错误列表”和“宏资源管理器”中获得相同的结果Gah!安装在VS2010中,并覆盖了我的整个解决方案资源管理器。在尝试打开新解决方案时,卸载Visual studio会随机锁定,日志显示是在尝试加载程序包时锁定的。卸载后,一切都会重新工作。您是否已将此应用于2012年?:)安装后,转到
Tools | Options | SExColor
。我找不到解决方案资源管理器背景色或其他几个视图背景色的任何设置。下载VS主题编辑器扩展后,编辑主题。单击“显示所有元素”按钮。您要更改的属性名为“Treeview->Background”。@csigrist I。。。爱。。。你。。。索穆克!错过了有这样一个选择。我建议你提一下;这是VS2013(和12?)的真正解决方案,如果人们点击这个,并且没有看到你的评论,可能会节省很多时间。留言说是你干的,我会回来投票支持你。:)♥ 哇,终于可以让这个IDE看起来像我想要的了。奇怪的是,这只适用于解决方案资源管理器和服务器资源管理器,而不适用于类视图。