Graphics.DrawLine メソッドで Panel コントロールに描画した直線が表示されません

こんにちは、Platform SDK (Windows SDK) サポートチームです。

今回は、Graphics.DrawLine メソッドを使って Panel コントロールに描画した直線が表示されない、という現象についてご案内します。

現象

Windows フォーム アプリケーションにおいて、下記 1. ~ 4. のように、予め拡大または縮小した Panel コントロールに対して Graphics.DrawLine メソッドを使って直線を描画すると、描画した直線が想定通り表示されない現象が発生することがあります。

  1. Windows フォーム アプリケーションの Form の上に、Panel コントロールを配置します。
  2. Panel コントロールにおいて、Control.Paint イベントをハンドリングし、3. 以降の処理を行います。
  3. Graphics.Transform プロパティを使って、Panel コントロールを任意のサイズに拡大または縮小します。
  4. Graphics.DrawLine メソッドを使って、Panel コントロールに直線を描画します。

なお本現象は、Windows 10 April 2018 Update (バージョン 1803) で発生することが確認されています。

原因

本現象は、Windows 10 April 2018 Update の GDI+ レンダリング処理の影響で発生しています。

回避策

Panel コントロールの代わりに、PictureBox コントロールをご利用ください。

状況

マイクロソフトでは、この現象について調査しています。

進展があり次第、本ブログを更新予定です。