Вы можете попробовать переопределить метод CreateShell в UnityBootstrapper, а не использовать этот метод OnStartup. Я не на 100% уверен, что это ваша проблема, но стоит попробовать.
Ваш метод OnStartup будет:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Bootstrapper bootStrapper = new Bootstrapper();
bootStrapper.Run();
}
А вот и метод CreateContainer:
protected override DependencyObject CreateShell()
{
var shellElement = Container.Resolve<Shell>();
var shellContainer = new ShellContainer();
shellContainer.mygrid.Children.Add(shellElement);
shellContainer.Show();
return shellContainer;
}
Это просто выстрел в темноте. Я действительно не знаю, в чем проблема, но 100% -ное решение для запуска не кажется мне правильным.