彼の答えの中で、 Rick Brewster は「PictureBox
しばしば誤解されている」と述べています。そして「あなたはおそらくそれを使いたくないでしょう。」
残念ながら、彼は の何が問題なのかを説明しませんでしたPictureBox
。私はそれを使って画像を表示したり操作したりしていますが、ちょっと遅いですが、画像を表示するためでなければ何の意味があるのでしょうか?
彼の答えの中で、 Rick Brewster は「PictureBox
しばしば誤解されている」と述べています。そして「あなたはおそらくそれを使いたくないでしょう。」
残念ながら、彼は の何が問題なのかを説明しませんでしたPictureBox
。私はそれを使って画像を表示したり操作したりしていますが、ちょっと遅いですが、画像を表示するためでなければ何の意味があるのでしょうか?
これは便利なコントロールで、ポイント アンド クリックの UI デザインに役立ちます。しかし、確かに、それは非常に無駄です。Label コントロールにキャンドルを保持していませんが。画像を描画するためだけに、Windows ウィンドウ全体を焼き尽くしています。ネイティブ ウィンドウ オブジェクトは、非常に高価なシステム リソースです。別の方法は、OnPaint() メソッド内の 1 行のコード、e.Graphics.DrawImage() です。
また、Rick が指摘するように、これはあまりスマートなコントロールではありません。それ自体をペイントする必要があるたびに、コントロールに合わせて画像を再スケーリングします。また、画像のピクセル形式も最適化されないため、GDI+ も毎回ピクセル変換を行う必要があります。最終的な影響として、UI が遅くなる可能性があります。画像の描画が必要以上に 100 倍遅くなることは、確かに珍しいことではありません。それ以外の場合は、汎用コントロールで行うのが難しい種類のトレードオフです。このような最適化は無料ではなく、メモリ要件が 2 倍になる可能性があります。
比較のために、Outlook のような Microsoft Office プログラムは約 50 のウィンドウを使用しますが、そのほとんどはツールバーです。それが、Winforms で 10 分以内にまとめられるものです。利便性には代償があります。Office プログラムも同様で、多くのプログラマーが必要です。