我有一个包含1 ... N个子控件的父控件。当我水平滚动父级时,子控件也会滚动。
我想将子控件剪辑到父控件的边界。当我将剪辑区域设置为父控件的边界时,子控件绘制仍然呈现在父控件之外。
有没有办法将子控件剪辑到父控件的边界?
答案 0 :(得分:0)
我现在正在裁剪 - 但可能不是最佳实践方法。我使用的方法如下。
但我想知道Paint事件处理程序中的UserControl.Region属性与同一处理程序中的Graphics.SetClip和Graphics.Clip的使用情况。 UserControl.Region属性似乎运行良好 - 但Graphics.SetClip和Clip没有任何效果。
我的猜测是UserControl.Region属性使用控制坐标,Graphics.SetClip和Clip期望不同的坐标系。这是对的吗?
方法:
计算控制坐标中的剪切矩形。在我的情况下,我想将我的自定义控件剪辑到DevExpress XtraChart XYDiagram(这样我的控件不会溢出到绘图区域之外)。
在我的控件事件处理程序中,将Region属性设置为在步骤1中计算的剪裁矩形。
我也很想知道在油漆事件中最小化闪烁的方法。任何意见将不胜感激。