我有一个WPF应用程序,可以访问LoginWindow,所以我为这个登录窗口创建一个Splash Screen,如下所示:
- 在App.xaml中
< Application x:Class="WPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup"
/>
Run Code Online (Sandbox Code Playgroud)
- 在App.xaml.cs中:
private void Application_Startup(object sender, StartupEventArgs e)
{
Login login = new Login();
login.Show();
}
Run Code Online (Sandbox Code Playgroud)
- 如果登录成功,则在Login.xaml.cs中:
PrimaryWindow mainWindow= new PrimaryWindow ();
Application.Current.MainWindow = mainWindow;
this.Close();
mainWindow.Show();
Run Code Online (Sandbox Code Playgroud)
.这段代码是对的,但是由于我的知识不足,我不知道这是一个很好的申请登录窗口的方法,我不知道这个方法对于我的应用程序存储数据是否"危险"数据库,并有很多功能,所以我问你我的方式是否好,如果你有更好的方式,你可以建议或告诉我吗?
感谢您的关注.
祝你好运.
mik*_*uld 15
我会用2个窗口和一个Application_Startup方法处理这个问题.这是我的应用程序(具有类似的登录想法)看起来像:
/// In App.xaml.cs
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application {
private MainWindow main = new MainWindow();
private LoginWindow login = new LoginWindow();
private void Application_Startup(object sender, StartupEventArgs e) {
Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
Application.Current.MainWindow = login;
login.LoginSuccessful += main.StartupMainWindow;
login.Show();
}
}
/// In LoginWindow.xaml.cs
/// <summary>
/// Interaction logic for LoginWindow.xaml
/// </summary>
public partial class LoginWindow : Window {
internal event EventHandler LoginSuccessful;
public LoginWindow() { InitializeComponent(); }
private void logInButton_Click(object sender, RoutedEventArgs e) {
if ( // Appropriate Login Check Here) {
LoginSuccessful(this, null);
Close();
} else {
// Alert the user that login failed
}
}
}
/// In MainWindow.xaml.cs
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() { InitializeComponent(); }
internal void StartupMainWindow(object sender, EventArgs e) {
Application.Current.MainWindow = this;
Show();
}
}
Run Code Online (Sandbox Code Playgroud)
这允许用户仅通过关闭登录窗口(即根本不登录)或通过在他们使用它一段时间后关闭主窗口来关闭应用程序.
小智 5
我正在使用这个
void App_Startup(object sender, StartupEventArgs e)
{
this.MainWindow = new MainWindow();
LoginWindow loginWindow = new LoginWindow();
if (loginWindow.ShowDialog() ?? false)
{
this.MainWindow.Show();
}
else
{
this.Shutdown();
}
}
Run Code Online (Sandbox Code Playgroud)
或者在检查凭据后必须创建 MainWindow 的情况下。
void App_Startup(object sender, StartupEventArgs e)
{
this.ShutdownMode = ShutdownMode.OnExplicitShutdown;
LoginWindow loginWindow = new LoginWindow();
if (loginWindow.ShowDialog() ?? false)
{
this.ShutdownMode = ShutdownMode.OnMainWindowClose;
this.MainWindow = new MainWindow();
this.MainWindow.Show();
}
else
{
this.Shutdown();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8098 次 |
| 最近记录: |