Ich habe ein Benutzersteuerelement, das ich MainWindowzur Laufzeit in ein lade . Ich kann das enthaltende Fenster aus dem nicht in den Griff bekommen UserControl.
Ich habe es versucht this.Parent, aber es ist immer null. Weiß jemand, wie man von einem Benutzersteuerelement in WPF ein Handle auf das enthaltende Fenster bekommt?
So wird das Steuerelement geladen:
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);
}