پاسخ اش رو پیدا کردم
///<summary>
/// برای لود پلاگین ها در فرم های مورد نظر استفاده میشود
///</summary>
///<param name="parentUiobject">استاک پنل در فرم اصلی یا همان جایی که قرار است پلاگین در آنجا لود شود</param>
///<param name="childUi">پلاگین مورد نظر</param>
public static void LoadUiPlugin(StackPanel parentUiobject, ContentControl childUi)
{
var parent = childUi.Parent;
if (parent != null)
{
ArmanUiHelper.Helper.RemoveUiChild(parent, childUi);
}
parentUiobject.Children.Add(childUi);
}
public static void RemoveUiChild(this DependencyObject parent, UIElement child)
{
var panel = parent as Panel;
if (panel != null)
{
panel.Children.Remove(child);
return;
}
var decorator = parent as Decorator;
if (decorator != null)
{
if (decorator.Child == child)
{
decorator.Child = null;
}
return;
}
var contentPresenter = parent as ContentPresenter;
if (contentPresenter != null)
{
if (contentPresenter.Content == child)
{
contentPresenter.Content = null;
}
return;
}
var contentControl = parent as ContentControl;
if (contentControl != null)
{
if (contentControl.Content == child)
{
contentControl.Content = null;
}
return;
}
// maybe more
}