П.с. есть вероятность того, что я не правильно сформировал вопрос в заголовке.
Есть форма, у которой отключены границы и по средству события OnPaint отрисован свой внешний вид формы, включая ее границы и заголовок.
Проблема в том, что, если на форму добавить контрол с свойством Dock равным DockStyle.Fill нарисованные на форме границы и заголовок перекрывается.
Есть ли возможность вмешатся в поведение Dock, а если быть точнее, то сделать смещение рабочей зоны, на которую он будет растягиватся?
Сразу говорю вариант "с созданием контрола Panel и маштабирование его кодом до нужных размеров, а уже в него добовлять все контролы" мне мне не шибко-то нравится, но рабочий.
Далее в ходе поиска в интернете натолкнулся на мысль "сместить точку отсчета координат на форме". Все бы хорошо, я это сделал это при помощи TranslateTransform, но вот только это смещает точку отсчета при рисовании, но не самой формы. Следственно создание контрола с указанием нулевой точки не смещается куда положено, а свойство Dock все так же перекрывает все что можно.
Тогда самое простое это установить свойство Padding.
Или переопределить свойство DisplayRectangle которое используется для позиционирования дочерних элементов.
При borderless окне у него клиентская часть совпадает с физическими размерами. Когда есть граница и заголовок, клиентская часть меньше. Нативными средствами .NET переопределить клиентскую часть окна, вроде бы, нельзя, но средствами Win32API можно. Попробуйте переопределить клиентскую часть окна при помощи AdjustWindowRectEx.