1...N 個の子コントロールを含む親コントロールがあります。親を水平にスクロールすると、子コントロールもスクロールします。
子コントロールを親コントロールの境界にクリップしたいと思います。クリップ領域を親コントロールの境界に設定すると、子コントロールのペイントは親の外側にレンダリングされます。
子コントロールを親コントロールの境界にクリップする方法はありますか?
現在、クリッピングが機能していますが、おそらくベストプラクティスのアプローチではありません。私が使用したアプローチは以下のとおりです。
しかし、Paint イベント ハンドラーでの UserControl.Region プロパティの使用と、同じハンドラーでの Graphics.SetClip および Graphics.Clip の使用について疑問に思っています。UserControl.Region プロパティはうまく機能しているようですが、Graphics.SetClip と Clip は効果がありませんでした。
私の推測では、UserControl.Region プロパティはコントロール座標を使用し、Graphics.SetClip と Clip は異なる座標系を想定しています。これは正しいです?
アプローチ:
コントロール座標でクリッピング四角形を計算します。私の場合、カスタム コントロールを DevExpress XtraChart XYDiagram にクリップしたいと考えています (コントロールがプロット領域の外にはみ出さないようにするため)。
コントロール イベント ハンドラーで、Region プロパティを手順 1 で計算されたクリッピング四角形に設定します。
また、ペイント イベント中のちらつきを最小限に抑える方法にも興味があります。コメントをいただければ幸いです。