色々試した結果、どうやらCreateGraphicsメソッドの動作が根本の原因っぽい。ユーザーコントロールのインスタンス生成直後にCreateGraphicsメソッドを呼び出すと、変なGraphicsクラスのインスタンスを返してくれる。
というか、ユーザーコントロール自身がよくわからない動作なんだよなぁ。生成直後で表示されていないにもかかわらず、Visible=Trueとなっていたり。そのくせCreateGraphicsを行うと実際には表示されていないからデスクトップのキャプチャ結果が返ってくる。
仕方ないので呼び出し側で、想定される表示状態を指定してそれによってCreateGraphicsするかDrawToBitmapするかを分岐させるようにした。んー、なんか実装していて「これでいいの?」と悩むなぁ。
0 件のコメント:
コメントを投稿