Приложение WPF Prism не завершает работу

Я написал простейшее из возможных приложений WPF Prism. Это не отключение.

App.xaml

<Application x:Class="PrismApp.Desktop.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="Shell.xaml"
             ShutdownMode="OnMainWindowClose">
    <Application.Resources>

    </Application.Resources>
</Application>

App.xaml.cs

namespace PrismApp.Desktop
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            Bootstrapper bootstrapper = new Bootstrapper();
            bootstrapper.Run();
        }
    }
}

Bootstrapper.cs

namespace PrismApp.Desktop
{
    class Bootstrapper : UnityBootstrapper
    {
        protected override System.Windows.DependencyObject CreateShell()
        {
            var shell = new Shell();
            return shell;
        }

        protected override void ConfigureModuleCatalog()
        {
            base.ConfigureModuleCatalog();
        }
    }
}

Shell.xaml

<Window x:Class="PrismApp.Desktop.Shell"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Shell" Height="350" Width="525">
    <Grid>

    </Grid>
</Window>

Почему это так?

1 ответ

Я только что посмотрел мой проект призмы и настройки немного отличаются. может это поможет

в app.xaml у меня нет

StartupUri="Shell.xaml"
ShutdownMode="OnMainWindowClose"

тогда в app.xaml.cs у меня есть следующее

private void StartupContainer()
{
   Bootstrapper bootstrapper = new Bootstrapper();
   bootstrapper.Run();
   bootstrapper.ShowDefaultView();
}

и в моем bootstrapper.cs

Shell _shell;

protected override DependencyObject CreateShell()
{
    _shell = Container.Resolve<Shell>();
    return _shell;
}

public void ShowDefaultView()
{
    _shell.Show();
}

где Shell - мое окно WPF

Другие вопросы по тегам