Neues Fenster öffnen nach der ersten
Wie kann das getan werden,
Login-Fenster wird zuerst angezeigt, und wenn alles in Ordnung ist schließen Sie einfach das login-Fenster öffnen und zweite Haupt-Fenster.
in win forms, ändern wir das Programm.cs aber in wpf gibt es kein Programm.cs.
Lösungen.?
Actully ich haben die meiste Arbeit in dem Fenster, das standardmäßig erstellt, und jetzt wollen Sie es machen, sekundäre(meine, es sollte angezeigt werden, und dann schließen, wenn Sie wollte, geben die Kontrolle in einem neuen Fenster)
<Application x:Class="DevnMark_V1._0.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
<Application.Resources>
</Application.Resources>
</Application>
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
var login = new MainWindow();
login.ShowDialog();
if (myAppSett.Default.validated == true)
{
var mainWindow = new DevNMarkMainWindow();
mainWindow.ShowDialog();
}
}
Login-Fenster starten, XML
<Window x:Class="DevnMark_V1._0.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:local="clr-namespace:Progress"
Title="MainWindow" Height="292" Width="563" WindowStyle="None" BorderBrush="#FF0A6277" AllowsTransparency="True" WindowStartupLocation="CenterScreen" Topmost="True">
Ausnahme tritt auf, wenn ich in der Nähe Login-Fenster und tritt an Stelle InitializeComponent();
zweiten Fenster, wenn es angezeigt wird, wenn es initilized
- Statt Application_Startup funktioniert es, wenn man diesen code in den Konstruktor (public App())?
- NOPs für aber gearbeitet, als ich geändert, um ShutdownMode="OnExplicitShutdown"
- aber wenn in diesem shutdowm-Modus nach dem schließen der zweiten Fensters die Anwendung nicht geschlossen, wie der thread am Leben war
- und hinzufügen Anwendung.Aktuelle.Shutdown(); zum zweiten Fenster, das es gelöst, aber ich dk dies ist der richtige Weg
- msdn.microsoft.com/en-us/library/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann es kein Programm.cs, aber es gibt eine App.xaml.cs in der Standard-WPF-Programm-Vorlage und Sie können die gleiche Sache zu tun gibt.
Was Sie tun möchten, ist entfernen
StartupUri="LoginWindow.xaml"
von der App.xaml und ändern Sie dann die App.xaml.die cs-Konstruktor aufrufen, Ihre login-Fenster und das Hauptfenster, so wie hier:Das obige Beispiel nimmt an, die Sie Hinzugefügt haben
username
undpassword
als öffentliche Eigenschaften zu LoginWindow, und dass Sie geändert haben MainWindow-Konstruktor ein parameter.Löste ich dieses problem auf diese Weise:
Ich entfernt von der App.xaml die
StartupUri="MainWinodw.xaml"
, so dass nurStartup="Application_Startup"
.In
Application_Startup
ich SOFORT verwiesen beide login-und Haupt-Fenster:Ich überprüfte meine Anmeldung dann geschlossen das login-Fenster und das Hauptfenster geöffnet haben, mit einem einfachen
.Show()
:Keine änderungen in
ShutdownMode
.Den vorgeschlagenen OnExplicitShutdown Methode funktioniert, und Sie können vermeiden, explizit schließen der app unten im zweiten Fenster einfach öffnen Sie es mit ShowDialog gefolgt von diesem.Shutdown(), die alle in einer App.xaml-also nicht stören mit dem rest der Anwendung.