В общем, не очень хорошая идея иметь кучу перекрывающихся элементов управления, как у вас, потому что, как вы заметили, есть проблемы с производительностью. Вы хотите свести к минимуму количество элементов управления, которые присутствуют в вашем приложении в любое время.
Если у вас ограниченное количество страниц, используйте TabControl .
Если у вас большое или динамическое количество страниц, рассмотрите Рамки и Страницы .
Третий вариант - использовать элемент управления оболочки в ContentPresenter . Затем, когда вы захотите перейти на другую страницу, просто установите для элемента управления Content новый экземпляр представления вашей страницы.
Ваши взгляды отделены от ваших моделей данных, верно? Если нет, рассмотрите возможность использования шаблона MVVM . Это позволит вам иметь постоянные данные независимо от того, какое представление отображается (например, динамическое создание и уничтожение представлений не испортит ваши данные).