JAN
5
Visual Studioのコントロールの配色は、vsThemeColors 列挙体 (EnvDTE80)とDTE2.GetThemeColor メソッド (EnvDTE80)の二つを使うことで、取得することが出来ます。これは前に述べた通りです。が、uint型で習得できた色を.NetのSystem.Drawing.Color構造体に直す部分で、daruyanagiさんからの紹介されたColorTranslatorクラスを使うことで楽することができました。
private Color convertFromVsThemeColor(vsThemeColors themeColor) {
return ColorTranslator.FromWin32((int)_dte2.GetThemeColor(themeColor));
}
なんということでしょう。あれほど無駄の多かったメソッドがたった一行に!
//Before
private Color converVsThemeColor(vsThemeColors themeColor) {
uint color = _dte2.GetThemeColor(themeColor);
int a = (int)color / 0x1000000;
int b = (int)(color - a * 0x1000000) / 0x10000;
int g = (int)(color - a * 0x1000000 - b * 0x10000) / 0x100;
int r = (int)(color - a * 0x1000000 - b * 0x10000 - g * 0x100);
return Color.FromArgb(0xFF, r, g, b);
}
.NET FCL万歳。daruyanagiさんありがとうございました。
Related Entries
Trackbacks : 1
- Trackback URL for this entry
- http://blog.sharplab.net/computer/cprograming/1681/trackback/
Listed below are links to weblogs that reference this entry
- ピンバック from Visual Studio Add-InのToolStripの色、解決(たぶん) - SharpLab. 09-01-05 11:57:47 JST
-
[...] 2009-01-05 11:58追記:取り消し線をつけた部分は内容的に無駄がありました。直したエントリをあげていますので、ご参照ください。 [...]
VisualStudio内でWebサイトを開くには