-1
DisplayRectangleの幅がClientRectangleよりも大きく、DisplayRectangleがClientRectangleと等しくなるように、水平スクロールバーを持つC#パネルがあります。 PanelをDisplayRectangleの正しいサイズに戻す方法を教えてください。私はそれを使って自動的にパネルをスクロールし、パネルの内容全体のスクリーンショットを撮ります。パネルのDisplayRectangleが小さすぎて、ClientRectangleと一致しません。
Rectangle dispRect = panel.DisplayRectangle;
Rectangle cRect = panel.ClientRectangle;
残念ながらdispRect == cRect。
どのGUIフレームワークを使用していますか?あなたが知る必要があるのは正確に何ですか?ユーザーにディスパッチされるウィンドウのサイズ? – pijemcolu
この質問には何か怪しいものがあります。 DisplayRectangleがClientRectangleと等しい場合、パネルはスクロールバーを表示しません。スクロールバーは、DisplayRectangle> ClientRectangleの場合にのみ表示されます。クリスタルボールは実際にパネルにHScrollBarをドロップしたと言います。まあ、しないでください。 –
私はWinFormsを使用しています。奇妙なもう一つのことは、HScrollがfalseでHorizontalScroll.Visible == falseであることです。フォームを見ると、水平スクロールバーがあります。また、PanelにはAutoScrollがtrueに設定されています。私はInvalidate()を呼び出して、DisplayRectangleに正しいサイズを取得しようとしましたが、サイズは変更されません。私は、Hansが真実かもしれないと言ったように、HScrollBarをパネルにドロップしていません。私は、パネルのフルサイズを取得しようとしていますが、現時点では、表示されるサイズのみを返します。パネルにDisplayRectangleを再計算させる方法はありますか? – Dan