Поскольку это, похоже, тема для решения проблемы отсутствия «InitializeComponent», я включу свой ответ здесь.
У меня тоже была эта проблема, и я перепробовал все, что нашел здесь и на всех других форумах, которые мог найти Google, однако ни один из них не решил эту проблему для меня. После двух часов попыток все, я наконец понял, что случилось с моей настройкой.
В нашем проекте мы используем компоненты Metro от MahApps . Представление, которое доставляло мне неприятности, было наследием от MetroWindow, например:
<Controls:MetroWindow x:Class="ProjectNamespace.MyView"
xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
... >
Теперь я определил мои статические ресурсы как
<Controls:MetroWindow.Resources>
<prop:Resources x:Key="LocalizedStrings"/>
...
</Controls:MetroWindow.Resources>
Вот как я определил ресурсы в UserControl
s во всех других моих представлениях, поэтому я предположил, что это сработает.
Это было, однако, не в случае с Controls:MetroWindow
! Там я абсолютно нуждался в определении ресурса следующим образом:
<Controls:MetroWindow.Resources>
<ResourceDictionary>
<prop:Resources x:Key="LocalizedStrings"/>
...
</ResourceDictionary>
</Controls:MetroWindow.Resources>
Таким образом, моя проблема, в итоге, была отсутствующей <ResourceDictionary>
меткой. Я действительно не знаю, почему это привело к ошибке «InitializeComponent», и это странным образом даже не создавало ее на каждой моей машине, но именно так я ее исправил. Надеюсь, это поможет (оставшиеся 0,001% людей сталкиваются с этой проблемой).