ColorTranslator.ToHtml の…怪


■先日、ひょんな事から変な発見がありましたので、ご報告まで
掲題のColorTranslator.ToHtmlメソッドですが、「Color.LightGray」を「LightGrey」と返してくるのです。 VB.NET的に正解は「LightGray」なのですが・・・試しに下記のコードを走らせてみます。

 Console.WriteLine("DarkGray       -> " & ColorTranslator.ToHtml(Color.DarkGray))
 Console.WriteLine("DarkSlateGray  -> " & ColorTranslator.ToHtml(Color.DarkSlateGray))
 Console.WriteLine("DarkGray       -> " & ColorTranslator.ToHtml(Color.DimGray))
 Console.WriteLine("Gray           -> " & ColorTranslator.ToHtml(Color.Gray))
 Console.WriteLine("LightGray      -> " & ColorTranslator.ToHtml(Color.LightGray))
 Console.WriteLine("LightSlateGray -> " & ColorTranslator.ToHtml(Color.LightSlateGray))
 Console.WriteLine("SlateGray      -> " & ColorTranslator.ToHtml(Color.SlateGray))
Grayの名の付く色を片っ端から変換してみると・・・結果は以下の通りだと思います。
 DarkGray       -> DarkGray
 DarkSlateGray  -> DarkSlateGray
 DarkGray       -> DimGray
 Gray           -> Gray
 LightGray      -> LightGrey
 LightSlateGray -> LightSlateGray
 SlateGray      -> SlateGray
何故か?「Color.LightGray」だけ「LightGrey」なのです・・・少しWEBでも調べてみたのですが 「LightGrey」という色は存在します。と言うか、世の中的には「LightGrey」なのかと? しかしVB.NET上では「LightGray」と処理されているようですね、 実は、ちょっとしたグラフィックを書く為のソースコードを育成・取得するツールを作っていたのですが、 思わぬ落とし穴に落ちたような気分に・・・
 ColorTranslator.ToHtml(Color.LightGray).Replace("LightGrey", "LightGray"))
おかげで、回避するのに上記のような記述を・・・割と、トホホな対応なのかと?

TOP ▲