-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 回答