当前情况下如何使用子窗口作为登录页面
本文关键字:登录 窗口 前情 情况下 何使用 | 更新日期: 2023-09-27 18:12:41
我是silverlight初学者,在启动时必须弹出登录页子窗口的情况下(启动程序时必须出现的第一件事必须是登录子窗口弹出)。当密码输入正确,然后显示UI元素。(之前)
我试着这样做,通过加载在MainPage. example .cs子窗口,并设置其可见性为崩溃的想法是,当用户输入正确的密码和用户名,然后UI元素的可见性(MainPage initializecomponents();)必须可见。
我试过这样做:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
Loaded += MainPage_Loaded;
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Visibility = Visibility.Collapsed;
loginChildWindow log = new loginChildWindow();
log.Show();
}
}
和弹出的childwindow类是:
public partial class loginChildWindow : ChildWindow
{
public loginChildWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (txtUsrname.Text == "Username" && txtPassword.Password == "Password")
{
MainPage obj = new MainPage();
obj.Visibility = Visibility.Visible;
obj.InitializeComponent();
this.DialogResult = true;
}
else
{
MessageBox.Show("Incorrect username and/orpassword", "Error", MessageBoxButton.OK);
}
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
}
这里的问题是,即使在输入正确的信息时,我将可见性设置为可见,但它仍然不显示任何东西。看到这个:
if (txtUsrname.Text == "Username" && txtPassword.Password == "Password")
{
MainPage obj = new MainPage();
obj.Visibility = Visibility.Visible;
obj.InitializeComponent();
//I also tried commenting the above 3 lines and simply doing this.Visibility = Visibility.Visible; but still do not work
this.DialogResult = true;
}
我认为我需要在MainPage.xaml.cs类(不在loginChildWindow.cs类)中设置可见性,但如何知道在loginChildWindow.cs
中输入的登录密码和用户名是否正确,以便在MainPage.xaml.cs中设置数据输入正确时可见性。
如果有人知道解决这个问题的其他方法,请帮助我。
最后我这样解决了这个问题(供将来的读者参考):
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
Loaded += MainPage_Loaded;
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Visibility = Visibility.Collapsed;
loginChildWindow log = new loginChildWindow(this);
log.Show();
}
public void loginWnd_Closed(object sender, EventArgs e)
{
this.Visibility = Visibility.Visible;
}
}
:
public partial class loginChildWindow : ChildWindow
{
private readonly MainPage _mainPage;
public loginChildWindow(MainPage mainPage)
{
InitializeComponent();
_mainPage = mainPage;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (txtUsrname.Text == "Username" && txtPassword.Password == "Password")
{
_mainPage.Visibility = Visibility.Visible;
this.DialogResult = true;
}
else
{
MessageBox.Show("Incorrect username and/orpassword", "Error", MessageBoxButton.OK);
}
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
private void Login_Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Visibility = Visibility.Collapsed;
}
}
我将mainpage . example .cs类的实例传递给loginPage类,并在那里使用它。