I’ve written a WPF control which accepts a number of UIElement objects as input and displays them docked either vertically or horizontally. The control exposes functions for enumerating, removing and inserting children, but internally I’m using a Grid to build the layout, creating a row/column for each item and inserting a GridSplitter between them. To do this I’ve inherited from ContentControl, and upon initialization I just set the Content property with the Grid. Everything is working as intended, but now I wonder if this might be confusing for the user of my control, as it would be counter-intuitive to have a ContentControl that has many items.
Should I be inheriting from ItemsControl instead?
Should I inherit directly from Control which is “content-agnostic”?
Is there a better way to do this?
Thanks in advance.
What you describe sounds like a Panel – basically a control which is responsible for the layout of many elements. I would consider inheriting from that.