public static void Show(Control control, string title) { if (windowControls.ContainsKey(control.GetType())) { CustomView view = windowControls[control.GetType()]; if (WindowsSys.WindowState) { ((Window)view.Control).Activate(); } else { primaryWindow.ChangeTo(view.Control); } } else { Control target; if (WindowsSys.WindowState) { primaryWindow.Visibility = Visibility.Hidden; MainWindow currentWindow = new MainWindow(); currentWindow.Title = title; currentWindow.Load(control); windows.Add(currentWindow); currentWindow.Show(); target = currentWindow; for (int i = 0; i < views.Count; i++) { currentWindow.AppendWindowMenu(views[i].Control, views[i].Title); } for (int i = 0; i < windows.Count; i++) { windows[i].AppendWindowMenu(currentWindow, title); } } else { primaryWindow.ChangeTo(control); controls.Add(control); primaryWindow.AppendWindowMenu(control, title); target = control; } CustomView view = new CustomView(); view.Title = title; view.Control = target; windowControls.Add(control.GetType(), view); views.Add(view); } }