2014-07-11 31 views
0

我是Silverlight初學者,並且在啓動時必須彈出登錄頁面子窗口(啓動程序必須出現的第一件必須是登錄子窗口彈出窗口)的情況下。當輸入正確的密碼,然後顯示UI元素。 (不是之前)如何在當前情況下使用子窗口登錄頁面

我試圖通過在MainPage.xaml.cs中加載子窗口並將其可見性設置爲Collapsed並且想法是當用戶輸入正確的密碼和用戶名,然後UI元素的可見性(MainPage IntializeComponents();)必須是可見的。

我那麼這樣的:

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中輸入數據正確時將可見性設置爲可見。

如果有人知道任何替代方案來完成這個問題,請幫助我。

回答

0

最後我做了thsi問題,這樣的解決方案(對於未來的讀者):

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.xaml.cs中類的實例loginPage類並在那裏使用它。

相關問題