我需要在启动应用程序之前获取电子邮件ID和密码的应用程序。我需要获取此信息进行处理,应用程序是使用XAML / C#构建的吗?如何使用自定义对话框实现此目的?
谢谢
答案 0 :(得分:0)
默认情况下,类型" App"在新的wpf应用程序中自动生成(从Application派生)设置为Startup对象(请参阅应用程序属性)。你可以......
a)用您自己的类型替换此对象,该类型实例化App并在提供凭据后调用App.run()。请务必使用[STAThread]声明您的输入方法。
[STAThread]
public static int Main()
{
MyOperations();
var app = new App();
app.Run();
}
b)在App.xaml.cs中覆盖OnStartup:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
MyOperations();
}
编辑:我可能错过了这一点。如果您的目标是在显示主窗口之前显示另一个WPF窗口,则可以使用选项b),但是在显示登录掩码之前可能必须修改Application.Current.ShutdownMode,否则程序将在关闭后终止。 / p>
因此,这将是现有文件App.xaml.cs的内容(它隐藏在解决方案资源管理器中,您必须展开App.xaml才能看到它)。
using System.Windows;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
ShutdownMode = ShutdownMode.OnExplicitShutdown;
var loginWindow = new Login();
loginWindow.ShowDialog();
if (!loginWindow.LoggedIn)
{
Shutdown();
return;
}
ShutdownMode = ShutdownMode.OnLastWindowClose;
}
}
}