Я думаю, что ответил на свой вопрос. Если вы копируете и вставляете пользовательский контроль из одного проекта в другой с помощью обозревателя решений Visual Studio, он помещает этот пользовательский контроль в файл vbproj (не уверен в csproj) как ApplicationDefinition, а не как Page. Например, изменив xml в vbproj, чтобы он выглядел так для каждого пользовательского элемента управления:
<Page Include="calculator.xaml">
<Generator>MSBuild:MarkupCompilePass1</Generator>
<SubType>Page</SubType>
</Page>
... исправляет проблему.
Это один из инструментов вуду, который меня беспокоит, но, по крайней мере, файлы прозрачны, так что вы можете разобраться и изменить их.
Это похоже на ошибку в Visual Studio.