Необходимо реализовать аналог SplitContainer для WPF, с возможностью деления контрола на 4 части и тасканием сплиттера за центральную часть в обоих направлениях.
Что лучше использовать для этой цели? Наследоваться от Panel или Control.
Хотелось бы, чтобы сплитеры добавлялись и удалялись автоматически при изменении свойства деления контрола (None, Horizontal, Vertical или Horizontal | Vertical). В случае панели сплитеры будут находиться в открытой коллекции Children, что не очень хорошо, т.к. колекцию можно модифицировать. Но наследование от панели логически более правильное.
Здравствуйте, notacat, Вы писали:
N>GridSpliiter смотрели?
Да, в данный момент используется Grid с GridSplitter'ами, не устраивает тем, что необходима возможность таскания за перекрестие, когда панель делится вертикально и горизонтально.
Без поддержки дизайн тайма контрол делается за день (молодые украинские программисты и не москвичи могут сделать за час — корректная работа не гарантирована).
Дарю идею — весь "контрол" это AttachedBehavior для Grid'a. The former всегда имеет две строки & два столбца. В самом простом случае высота второй строки и ширина второго столбца "*". Это без поддержки пропорционального ресайза.
Сам behavior имеет едиснтвенное свойство CrossSplitterPosition of Point type. CrossSplitterPosition.Х — first col's width & CrossSplitterPosition.Y — first row's height.
Завершающий этап — создается draggable крестовина, перемещения которрй привязаны к CrossSplitterPosition свойству behavior'a.
Вот статья, описывающая на пальцах, как сделать draggable елемент. Самой большой ошибкой было бы пробегать к CLR населдованию и протаскивать форматирование крестовины и назанчение детей панели через непредназначенные для этого механизмы.