其他分享
首页 > 其他分享> > CodeGo.net>如何显示用户控件在WPF中单击按钮?

CodeGo.net>如何显示用户控件在WPF中单击按钮?

作者:互联网

我在wpf中创建了一个用户控件.我还创建了一个主窗口.现在,我想要的是,当我单击一个按钮(位于mainWindow中)时,用户控件显示为一个对话框.假设我有一个名为i-e的按钮,创建新用户.现在,我想要的是在按钮单击时显示控件(我已经为新用户创建),而无需在mainWindow中调用它.

解决方法:

WPF演示应用程序Family Show中,在主窗口中创建用户控件(MainWindow.xaml)

<!-- New User Control -->
<local:NewUserControl x:Name="NewUserControl" 
HorizontalAlignment="Center" VerticalAlignment="Center"
AddButtonClick="NewUserControl_AddButtonClick"/>

然后,在(MainWindow.xaml.cs)后面的代码中,由于按钮的单击动作,不同的用户控件被隐藏或显示.

/// <summary>
/// Hides the New User Control.
/// </summary>
private void HideNewUserControl()
{
     NewUserControl.Visibility = Visibility.Hidden;
     DiagramControl.Visibility = Visibility.Visible;
     enableButtons();

     if (family.Current != null)
        DetailsControl.DataContext = family.Current;
}

/// <summary>
/// Shows the New User Control.
/// </summary>
private void ShowNewUserControl()
{
        HideFamilyDataControl();
        HideDetailsPane();
        DiagramControl.Visibility = Visibility.Collapsed;
        WelcomeUserControl.Visibility = Visibility.Collapsed;

        if (PersonInfoControl.Visibility == Visibility.Visible)
            ((Storyboard)this.Resources["HidePersonInfo"]).Begin(this);

        NewUserControl.Visibility = Visibility.Visible;
        NewUserControl.ClearInputFields();
        NewUserControl.SetDefaultFocus();

        ... //Removed for brevity
    }

我鼓励您下载Family Show应用程序以查看源代码,或者至少在线上browse.

您可以将其放在一个单独的窗口中,例如Johannes Hofmeister的建议.

用户控件的主要优点是可以在应用程序中的多个点使用此用户界面块. (例如,带有滚动,缩放和屏幕截图按钮的图形控件用户控件将出现在每个图形旁边,使其成为用户控件的理想候选者).

标签:user-controls,wpf,c
来源: https://codeday.me/bug/20191201/2083110.html