Существует несколько разных уровней реализации элементов управления в WPF. Согласно книге "WPF в действии", можно использовать три метода:
- Пользовательские элементы управления. Это похоже на пользовательские элементы управления ASP.NET. То, что вы собираетесь создать элемент управления с помощью комбинации других элементов управления.
- Пользовательские элементы управления. Это предназначено для создания более герметичных и многократно используемых компонентов в различных проектах.
- FrameworkElement. Это еще более низкоуровневый материал.
Реализация звуков из Stackpanel аналогична подходу Custom Controls. Это действительно зависит от того, какой уровень контроля, сложности, многократного использования вам необходим при выборе между этими тремя подходами. Что по моему личному опыту:
Пользовательские элементы управления проще создавать, но их очень сложно использовать повторно, и к ним сложно применить тему. (вы знаете, что WPF разрешают один и тот же элемент управления отображать по-разному - дальнейшее чтение: шаблоны в WPF); пользовательские элементы управления (вы также можете наследовать от элементов управления, панелей, сеток, других элементов управления) дают возможность повторного использования, изменения темы и т. д.
Вернуться к вашему вопросу. Ответ зависит от того, что вам нужно. Если вы просто хотите что-то похожее на usercontrol в asp.net, то usercontrol в wpf. Я бы не наследовал стековую панель или сетку, за исключением того, что мне нужна альтернатива стековой панели или сетке, оставьте макет для беспокойства дизайнера.