0

構文の強調表示やオートコンプリートなどを行うカスタムコントロールをC#/Winformsに実装しました。AutoScrollを使用してスクロールを管理していますが、うまく機能しています。

現在、私はまったく最適化を行っていません(最適化は重要ですが、最後に行っています。機能は私が最初に求めているものです)、巨大なドキュメントをレンダリングしています。キーを押すたびに、影響を受ける行が再解析され、構文の強調表示は一貫しています。

現在、私の大きな肉付きのペイント方法では、クリップ領域の外側にある場合でも、すべての文字列、キーワードなどをペイントしています。しかし、ドキュメントの大きさや、キーワード/ハイライトされたビットとピースの組み合わせの数に関係なく、メモリとCPUのオーバーヘッドはそれほど多くなく、非常に高速に実行されます。

だから私の質問-Graphics.Draw*メソッドはどんな種類のカリングをしますか?例:AutoScrollPositionがドキュメントのずっと下にあり、Graphics.DrawString(描画領域の外側にいくつかの座標を挿入)の場合、実際に作業が行われていますか?また、VM内のWin 7でVSを実行していることにも注意してください。それでも、高速で実行されています。今のところ問題ではありませんが、最適化フェーズに関しては後で覚えておくとよいでしょう。:D

乾杯、アーロン

4

1 に答える 1

1

Graphics.Draw *メソッドを使用するゲームを作成した個人的な経験から、描画メソッドを呼び出す前に独自の境界チェックを実行すると、速度が向上することに気付くでしょう。

画面外に描画しようとすると、画面上に描画するよりも高速ですが、まったく描画しない場合よりも著しく遅くなります。

于 2011-12-14T23:53:33.670 に答える