在WPF中单击一下,动态加载新的用户控件

时间:2014-06-28 15:55:31

标签: c# user-controls wpf-controls

我基本上刚刚开始学习C#,就像几天前我正在尝试创建一个小应用程序。我来自PHP背景,对.NET框架几乎一无所知。现在,如果我宰了一些条款等,我的免责声明就会弃去并道歉。

所以,我有一个按钮而不是创建几个函数来做同样的事情我想我可以创建一个函数并为我的每个按钮分配相同的点击功能,以在我的WPF应用程序中加载新的用户控件。我几乎有几个按钮可以加载相同的东西:

<Button Content="Link1" Name="UserControlNameToLoad" Click="MyEventToLoad" />

因此,当我点击此按钮时,我试图获取与按钮中的名称相同的用户控件。

非常感谢任何帮助,如果我在这里听起来非常真实,我再次感到抱歉。

1 个答案:

答案 0 :(得分:1)

这是我从这里得到的 How can I load a UserControl by specifying a string value?

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void button_clicked(object sender, RoutedEventArgs e)
        {
            var btn = (Button) sender;
            Type newType = Type.GetType("WpfApplication1."+ btn.Name, true, true);

            object o = Activator.CreateInstance(newType);
            StkPanel.Children.Add((UIElement) o);
        }
    }
}

感谢您的帮助