1

フォームの 1 つから繰り返しスクリーンショットを作成しようとしています (つまり、特定のデータを含むフォームを読み込み、スクリーンショットを取得して保存し、次に別のデータを含むフォームを読み込み、別のスクリーンショットを取得するなど)。

フォームに重なっている Shape 要素と Control 要素が含まれています。画面にフォームが表示されると正しい z オーダーが表示されますが、スクリーンショットでは z オーダーが逆になっています。

現在使用している DrawToBitmap メソッドを使用しているときに、z オーダーが逆になっていることを説明しているスレッドをサイトで既にいくつか見つけました。また、コントロールとシェイプの BringToFront() メソッドと SendToBack メソッドを見つけて、それらを使用して z オーダーを調整し、適切なスクリーンショットを取得しようとしました。まだ成功していません。

次に、これらのメソッドに関するShape クラスのドキュメントを読み、次のコメントを見つけました。

BringToFrontメソッドを使用して、LineShape、OvalShape、または RectangleShape コントロールを、特定のコンテナー内の他のすべての線および形状コントロールの前に配置できますコンテナー内の他の種類のコントロールの前にコントロールを配置しません。線と形状のコントロールを使用して描画されたグラフィックスは、常に他のコントロールの背後に表示されます。

この動作を変更して、DrawToBitmap を使用してフォームのスクリーンショットを適切に撮る​​機会はありますか? 別の解決策のアイデアはありますか? Graphics クラスの CopyFromScreen メソッドも試しましたが、保存したいフォームを表示せずに、スクリーンショットを保存するプロセス全体が機能するようにしたいと考えています。

4

0 に答える 0