Ваш выбор иметь 2 отдельных элемента управления - фактически мой первый выбор.
Это имеет то преимущество, что позволяет вам тщательно и легко протестировать оба ваших элемента управления. Вы можете легко использовать триггеры для переключения видимого элемента управления на основе любых критериев в вашем DataContext. Это чисто, просто и достаточно элегантно.
При этом есть и другие варианты, если вы хотите этого избежать.
Например, вы можете использовать ContentPresenter
для этой области «ящика» и привязать его содержимое к свойству в вашем DataContext, которое просто определяется как «объект». Затем вы можете во время выполнения установить его в отдельный тип, когда он аутентифицирован или не аутентифицирован. Указав DataTemplate для каждого из типов, WPF автоматически подключит соответствующий элемент управления для вас. (Это в основном подход MVMM в стиле ViewModel.)