2010-11-25 2 views
0

これは私の最初の質問ですが、これは過去に多くの助けになりました。c# - 透明度が正しく描画されていない(十分に速い)

私は、私が取り組んでいるプロジェクトでは小さな(しかし面倒な)問題があります。私は透明な領域でpngファイルを読み込むピクチャボックスコントロールを使用しています。透明部分は完全にうまく動作しますが、マウスでこの絵文字をドラッグできるようにする必要があります。ピクチャーボックスは、四角形のパネル内に含まれています。正方形は、パネルのオーバーライドされたOnPaintメソッドで描画されます。

問題は、ピクチャボックスコントロールを移動すると、透明な領域が背景をすばやく描画せず、四角形がどこにあるか正確に描画されないということです。これを回避してすべてをすっきりと滑らかに見せる方法はありますか?

私はあなたが私が何を言おうとしているのかをよく理解できるように絵を付けました。この例では、私は実際の写真の代わりに、私はすべてがより明白になるように使用する線を使用しています。正しく描画されていない線の周りに四角形を確認してください。

http://s1084.photobucket.com/albums/j405/headbanging1638/?action=view&current=problem.jpg

PS:私は、ピクチャ

答えて

0

の背景色のためcolor.transparentを使用していますたぶん、あなたは、再描画の速い速度を強制するのMouseMove上でのレイアウトを無効にしようとするだろうか?

+0

回答ありがとうございますが、無効化メソッドが既にmousemoveイベントで呼び出されています:( – alegen

+0

Hmm、ドラッグされた項目に25 fpsの再描画ループを強制するタイマーを作成すると、マウスのプレスで? – dain

+0

25fpsのタイマと.Invalidate()の代わりに.Refresh()と問題はほとんど気づかない。私はこのソリューションに固執すると思います。ありがとう:) – alegen

0

私は以前に尋ねたかなり類似した問題だと思います。

私のQuestionを参照し、私が受け入れた回答。私はそれがあなたを助けると思う。

+0

ねえ、リンクありがとう。私に、.Invalidate()の代わりに.Refresh() – alegen