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"))
おかげで、回避するのに上記のような記述を・・・割と、トホホな対応なのかと?