用户控件中的自定义事件

本文关键字:自定义 事件 控件 用户 | 更新日期: 2023-09-27 18:25:07

我有一个由一个"MainWindow"组成的应用程序,在main中我调用了一个用户控件像这样的"loginControl";

<!-- Login user Control -->
<local:LoginView x:Name="loginControl" HorizontalAlignment="Center" VerticalAlignment="Center" />

现在,在"loginControl"中,我还有三个类似的控件;

<local:ForgotPassword x:Name="userControlForgotPassword" Visibility="Collapsed" />
<local:CreateNewUser x:Name="userControlCreateNew" Visibility="Collapsed" />
<local:ChangePassword x:Name="userControlChangePassword" Visibility="Collapsed" />

在"loginControl"背后的代码中,我称之为这些事件;

private void hyperLinkCreateNew_Click(object sender, RoutedEventArgs e)
{
    userControlCreateNew.Visibility = System.Windows.Visibility.Visible;
}
private void hyperForgotPassword_Click(object sender, RoutedEventArgs e)
{
    userControlForgotPassword.Visibility = System.Windows.Visibility.Visible;
}
private void hyperLinkChangePassword_Click(object sender, RoutedEventArgs e)
{
    userControlChangePassword.Visibility = System.Windows.Visibility.Visible;
}

现在,我想要的是,当我点击"create New"(这是"loginControl"中的一个链接,并更改"create New usr control"的可见性)时。"loginControl"窗口应该通过使用自定义事件来取消作用。我怎么能那样做?。提前谢谢。

用户控件中的自定义事件

private void hyperLinkCreateNew_Click(object sender, RoutedEventArgs e)
{
    userControlCreateNew.Visibility = System.Windows.Visibility.Visible;
    Window parent = Window.GetWindow(this);
    LoginView loginView = (LoginView)(parent.FindName("loginControl"));
    loginView.Visibility = System.Windows.Visibility.Hidden;
}