MainWindow
런타임에 로드하는 사용자 정의 컨트롤이 있습니다. 에서 포함 창에 대한 핸들을 얻을 수 없습니다 UserControl
.
시도 this.Parent
했지만 항상 null입니다. 누구나 WPF의 사용자 정의 컨트롤에서 포함 창에 대한 핸들을 얻는 방법을 알고 있습니까?
컨트롤이로드되는 방법은 다음과 같습니다.
private void XMLLogViewer_MenuItem_Click(object sender, RoutedEventArgs e)
{
MenuItem application = sender as MenuItem;
string parameter = application.CommandParameter as string;
string controlName = parameter;
if (uxPanel.Children.Count == 0)
{
System.Runtime.Remoting.ObjectHandle instance = Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName, controlName);
UserControl control = instance.Unwrap() as UserControl;
this.LoadControl(control);
}
}
private void LoadControl(UserControl control)
{
if (uxPanel.Children.Count > 0)
{
foreach (UIElement ctrl in uxPanel.Children)
{
if (ctrl.GetType() != control.GetType())
{
this.SetControl(control);
}
}
}
else
{
this.SetControl(control);
}
}
private void SetControl(UserControl control)
{
control.Width = uxPanel.Width;
control.Height = uxPanel.Height;
uxPanel.Children.Add(control);
}