.NET Frameworkのソースコード

@ITの記事を読んで、クラスライブラリのソースコードを覗いてみた。
http://www.atmarkit.co.jp/fdotnet/insiderseye/20080222sourcecode/sourcecode.html
理由は家で画像表示プログラムを作っていたのだが、Graphicsで表示かけるときに、PictureBoxSizeModeに応じた表示領域の求め方を見たかったから。
で、この記事の中でNetMassDownloaderを使ったマイクロソフト社のソースサーバからのダウンロード方法が載っていたが、

ではダメ。
outputを指定しないとエラーする(discussionsを読んでて分かった...)

これで、.NET Frameworkソースコードが山ほどダウンロードされてくる!
ちなみにPictureBoxSizeModeがzoomの場合には以下のように表示領域を求めている

float ratio = Math.Min((float)ClientRectangle.Width / (float)imageSize.Width, (float)ClientRectangle.Height / (float)imageSize.Height);
result.Width = (int)(imageSize.Width * ratio);
result.Height = (int) (imageSize.Height * ratio);
result.X = (ClientRectangle.Width - result.Width) /2;
result.Y = (ClientRectangle.Height - result.Height) /2;
(ソースの場所\redbits\ndp\fx\src\WinForms\Managed\System\WinForms)

縦と横それぞれ比率を求めてやってるだろうと思ってたところは合ってたが、Math.Min()を使っていたのは予想外だった。ifで判定していると思ってたので。
ある程度想定できる内容でも実際のソース上は別のやり方してたりするので、ソースコードが見れるのはありがたい。


MEMO(112370)