Ich versuche, so etwas wie Login-Fenster in meiner Anwendung zu machen. Natürlich verstehe ich, dass Fenster Login nicht das Hauptfenster gestartet werden soll - das ist, warum ich die App.xaml
und App.xaml.cs
wie folgt geändert:C# WPF Startup-Fehler
<Application x:Class="WpfApp2.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp2"
>
<Application.Resources>
</Application.Resources>
und ich overrided das Ereignis in App.xaml.cs
:
protected override void OnStartup(StartupEventArgs e)
{
try
{
LoginForm loginForm = new LoginForm();
MainWindow mainWindow = new MainWindow();
bool result = (bool)loginForm .ShowDialog();
if(result)
{
mainWindow.Show();
}
}
catch (Exception ex)
{
throw ex;
}
}
Dieser Code funktioniert, aber es ist nicht gut für mich, weil ich noch einige Parameter in den MainWindow
Konstruktor schieben möchte. Also, wenn ich Code dies ändern:
protected override void OnStartup(StartupEventArgs e)
{
try
{
LoginForm loginForm = new LoginForm();
bool result = (bool)loginForm .ShowDialog();
if(result)
{
MessageBox.Show("I am here");
MainWindow mainWindow = new MainWindow();
mainWindow.Show();
}
}
catch (Exception ex)
{
throw ex;
}
}
Wenn ich diesen Code ausführen - Ich werde mein Login-Formular sehen, nachdem OK-Taste drücken werde ich sehen, „Ich bin hier“, und danach fällt Ausnahme. Hilf mir bitte. Wie löst man dieses Problem? Wenn es nicht genug Code ist - werde ich hinzufügen, es
Mein Login-Fenster sieht aus wie (XAML und Xaml.cs):
<Window x:Class="WpfApp2.LoginForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp2"
mc:Ignorable="d"
Title="Hello" Width="480" Height="370">
<Grid>
<Button Content="Click Me" Width="100" Height="100" Click="SetDialogResultOK">
</Grid>
<Window.Resources>
</Window.Resources>
</Window>
public partial class LoginForm : Window
{
public LoginForm()
{
InitializeComponent();
}
private void SetDialogResultOK(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
}
Mein Hauptfenster enthält keine interessant. dies ist ein einfaches Fenster für jetzt
Was ist die Ausnahme? – Nkosi
@Nikos, Nachricht ist Das Anwendungsobjekt wird heruntergefahren – Polly
Die Frage in ihrem aktuellen Zustand ist unklar, da sie unvollständig ist und zu viele Fragen erfordern würde, um zu klären, was gefragt wird. Lesen Sie [ask] und stellen Sie dann ein [mcve] zur Verfügung, mit dem Sie Ihr Problem reproduzieren können, damit wir besser verstehen können, worum es geht. – Nkosi