При переопределении метода OnPaint пользовательского элемента управления мне предоставляется PaintEventArgs , который содержит объект Graphics и ClipRectangle. ClipRectangle слишком мал на мой вкус, поэтому я хочу либо расширить его, скажем, на 100 пикселей, либо полностью игнорировать.
Независимо от того, что я делаю, мне кажется, что я не могу вырваться из ClipRectangle. До сих пор я пробовал:
e.ClipRectangle.Inflate(100, 0);
e.Graphics.ResetClip();
e.Graphics.SetClip(new Rectangle(x, y, w, h));
Родительский элемент управления вызывает Invalidate (true) (чтобы принудительно сделать недействительными все дочерние элементы управления дочерних элементов).
Я также немного погуглил и просмотрел сайт Боба Пауэлла, но не может найти nuffin.
ResetClip сбрасывает область отсечения для объекта Graphics до бесконечно большого прямоугольника, но объект Graphics с радостью продолжает использовать предоставленный ClipRectangle.
Справка.