Вы кодируете, чтобы установить фокус, правильно, так как если вы добавляете кнопку, которая вызывает тот же самый код, это прекрасно работает:
<StackPanel Width="150" VerticalAlignment="Center">
<TextBox x:Name="RegularTextBox" IsTabStop="True" />
<Button Click="UserControl_Loaded">
<TextBlock Text="Test"/>
</Button>
</StackPanel>
Итак, я предполагаю, что это как-то связано с Focus (), требующим некоторого взаимодействия с пользователем. Я не мог заставить его работать с событием MouseMove в UserControl, но установка события KeyDown для установки фокуса работает (хотя шаблон не обновляется до целевого шаблона).
Width="400" Height="300" Loaded="UserControl_Loaded" KeyDown="UserControl_KeyDown">
Мне кажется, что это ошибка ...