В WinForms можно было сделать окно с элементами. Потом создать еще одно окно, унаследованное от первого и добавить на него еще элементы. Как в WPF делает такое? Что-то у меня не выходит такое провернуть.
А не проще использовать паттерн MVVM.
Мне кажется тут нужно менять подход и не делать из WPF WinForms. При помощи даже тупых биндингов с тригерами можно спрятать или показать нужные контролы. Это конечно если контролов не много, а если их много то мне кажется где-то проблема в архитектуре приложения. Потом, при подходе к WPF как к WPF`у все это добро отлично тестится и не читаемые портянки кода исчезают