-1

1...N 個の子コントロールを含む親コントロールがあります。親を水平にスクロールすると、子コントロールもスクロールします。

子コントロールを親コントロールの境界にクリップしたいと思います。クリップ領域を親コントロールの境界に設定すると、子コントロールのペイントは親の外側にレンダリングされます。

子コントロールを親コントロールの境界にクリップする方法はありますか?

4

1 に答える 1

0

現在、クリッピングが機能していますが、おそらくベストプラクティスのアプローチではありません。私が使用したアプローチは以下のとおりです。

しかし、Paint イベント ハンドラーでの UserControl.Region プロパティの使用と、同じハンドラーでの Graphics.SetClip および Graphics.Clip の使用について疑問に思っています。UserControl.Region プロパティはうまく機能しているようですが、Graphics.SetClip と Clip は効果がありませんでした。

私の推測では、UserControl.Region プロパティはコントロール座標を使用し、Graphics.SetClip と Clip は異なる座標系を想定しています。これは正しいです?

アプローチ:

  1. コントロール座標でクリッピング四角形を計算します。私の場合、カスタム コントロールを DevExpress XtraChart XYDiagram にクリップしたいと考えています (コントロールがプロット領域の外にはみ出さないようにするため)。

  2. コントロール イベント ハンドラーで、Region プロパティを手順 1 で計算されたクリッピング四角形に設定します。

また、ペイント イベント中のちらつきを最小限に抑える方法にも興味があります。コメントをいただければ幸いです。

于 2012-09-06T16:27:02.070 に答える