Я постараюсь дать вам несколько советов и код для решения ваших проблем.Первый.Можно делать все что хочешь;).Если вы хотите использовать только одну страницу (возможно, не лучшую практику), вы можете изменить свой пользовательский интерфейс из кода.Если у вас есть страница с MainGrid и двумя гридами внутри MainGrid.Вы можете получить доступ к каждой сетке с помощью свойства x: name, которое вы установили в xaml.Пример:
<Grid x:name="MainGrid">
<Grid x:Name="LogoGrid"/>
<Grid x:Name="ContentGrid"/>
</Grid>
Здесь вы можете добавить свой userControl следующим образом:
var control = new CustomUserControl();
ContentGrid.Children.Clear(); //maybe delete old Children
ContentGrid.Children.Add(control);
Обработка событий также проста.Просто встроите его в свой UserControl, например LoginButton, и замените старый UserControl новым после ButtonClick.