Еще один метод, который я еще не пробовал, но планирую, - создать окно без полей для каждого документа. Таким образом, один документ имеет одно окно, которое может быть или не быть видимым.
Затем создайте окно-обертку, содержащую фактическую границу окна, и любые элементы управления для переключения между тем, какие окна / окна документа без полей видны. Окно документа является дочерним окном оболочки, которое гарантирует, что оба будут связаны, когда окно будет перемещено / свернуто / закрыто / и т. Д.
Для каждого окна документа без полей окно-обертка имеет вид заполнителя, который при изменении размера будет изменять размер окна документа, а также вставлять представление окна документа в цепочку респондента (любое событие, отправленное в представление заполнителя, будет отправлено в представление окна документа, прежде чем перейти к родительскому представлению заполнителя).
Есть еще несколько мелких деталей, но я думаю, что этот подход будет работать хорошо.