Dan*_*ori 4 .net c# wpf xaml login
我已经为一个基本上执行数据库连接的登录WPF应用程序创建了一个项目.现在我正在开发一个需要此登录项目启动的应用程序(始终在WPF中).我已将Login.Exe添加到当前项目中的引用中,但我找不到强制启动登录的方法,只有在运行我的MainWindow()之后.
我现在正在尝试这样的事情
namespace Administrator
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Window login = new Login.MainWindow();
login.Show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的mainwindow.xaml有空内容,这段代码显示了登录表单,但也是一个空白窗口.我怎样才能实现目标?
在App.xaml中设置"ShutdownMode"和"StartupUri":
<Application x:Class="MyApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyApp"
ShutdownMode="OnExplicitShutdown"
StartupUri="Login.xaml">
Run Code Online (Sandbox Code Playgroud)
"StartupUri"是您的登录表单.
您可以使用以下模式实现此目的.
在App.xaml StartupUri="MainWindow.xaml"中Startup="ApplicationStart",在App.xaml.cs中更改并创建ApplicationStart方法.
private void ApplicationStart(object sender, StartupEventArgs e)
{
Window login = new Login.MainWindow();
login.Show();
// Determine if login was successful
if (login.DataContext is LoginViewModel loginVM)
{
if (!loginVM.LoginSuccessful)
{
// handle any cleanup and close/shutdown app
}
}
//show your MainWindow
}
Run Code Online (Sandbox Code Playgroud)
我喜欢这种模式,因为您可以在ApplicationStart中设置DI容器或在显示主视图之前设置其他任何内容.