Я должен признать, что графический результат очень привлекателен, даже я бы не знал, как использовать этот вид управления!
Чтобы ответить на ваш вопрос, я никогда не пытался использовать ту же панель, что и хост, но не думаю, что это будет возможно. Это нарушило бы схему иерархии визуального дерева. У любого визуального элемента не может быть больше, чем у родителя.
Предполагая, что каждый уровень иерархии отображает свое собственное кольцо, я, несомненно, сделаю ставку на классический способ создания такого составного пользовательского интерфейса. Нет сомнений в удобстве использования HierarchicalTemplates и ItemsControls, даже если это может быть сложной задачей.
Более того, я не понимаю, является ли ваша цель иметь какой-то коллапс, такой как обычный вид дерева. В этом случае отказ от классического подхода WPF был бы кошмаром!
Мое решение заключается в создании настраиваемой панели, позволяющей расположить своих детей на ринге.
Это еще не все. Должны быть созданы как пользовательский элемент управления, так и элемент управления. Первый будет представлять кольцевой срез, который должен быть визуализирован, а другой - как генератор.
Элемент управления, действующий как держатель элемента, будет иметь два свойства: угол и радиус. Толщина может быть установлена отдельно.
Панель, вызывающая MeasureOverride, должна учитывать вложенность кольца и соответственно устанавливать угол и радиус своих дочерних элементов.
С моей точки зрения, контроль удержания должен происходить из ContentControl. Это потому, что вам нужно визуализировать форму среза, и эта задача должна быть выполнена с помощью этого элемента управления. Любой конкретный встроенный элемент управления (текст, кнопки и т. Д.) Может быть помещен внутрь как контент.
Конечно, все это мозговой штурм. Я не гарантирую, что это лучшее решение, и оно не будет работать как есть.
Надеюсь, это поможет.
Приветствия