У меня была проблема с вызовом Type.GetType. Общий вызов, который MSDN дает:
Type formType = Type.GetType("AppCalculater");
который вызывает получить тип указанного имени. Это все равно не имеет значения, что вернуть ноль. Затем я добавил пространство имен в смесь.
Type formType = Type.GetType("foobar.AppCalculater");
Это, однако, все еще вызывало ошибку при вызове других файлов проекта в foobar. Чтобы получить пользовательские элементы управления в другом проекте, я добавил сборку после вызова элемента управления и пространства имен.
Type formType = Type.GetType("foobar.AppCalculater,foobar");
Затем я смог динамически ссылаться на все пользовательские элементы управления с помощью этого вызова. Таким образом, мой теперь обновленный вызов для загрузки пользовательского элемента управления из другого проекта в элемент управления моей вкладки выглядит следующим образом:
private void LaunchWPFApplication(string header, string pPath)
{
// Header - What loads in the tabs top portion.
// Path - Page where to send the user
//Create a new browser tab object
BrowserTab bt = tabMain.SelectedItem as BrowserTab;
bt = new BrowserTab();
bt.txtHeader.Text = header;
bt.myParent = BrowserTabs;
//Load in the path
try
{
Type formType = Type.GetType(pPath); //Example "foobar.foobarUserControl,foobar"
bt.Content = Activator.CreateInstance(formType);
}
catch (ArgumentNullException)
{
MessageBox.Show("The specified user control : " + pPath + " cannot be found");
}
catch (Exception ex)
{
MessageBox.Show("An error has occurred while loaded the specified user control : " + pPath + ". It includes the following message : \n" + ex);
}
//Add the browser tab and then focus
try
{
BrowserTabs.Add(bt);
}
catch(InvalidOperationException)
{
MessageBox.Show("Cannot add " + pPath + " into the tab control");
}
bt.IsSelected = true;
}