/// <summary> /// Muestra un documento /// </summary> public void ShowDocument(string windowID, string title, System.Windows.Controls.UserControl control) { LayoutContent previous = GetLayoutPrevious(windowID); if (previous != null && previous.Parent != null) { previous.IsActive = true; } else { LayoutDocumentPane documentPane = DockManager.Layout.Descendents().OfType <LayoutDocumentPane>().FirstOrDefault(); LayoutDocument layoutDocument = new LayoutDocument { Title = title, ToolTip = title }; // Crea un documento y le asigna el control de contenido if (documentPane != null) { // Asigna el control layoutDocument.Content = control; layoutDocument.ContentId = windowID; // Añade el nuevo LayoutDocument al array existente documentPane.Children.Add(layoutDocument); // Activa el documento layoutDocument.IsActive = true; layoutDocument.IsSelected = true; // Cambia el foco al control control.Focus(); // Añade el documento al controlador AddDocument(new DocumentViewModel(windowID, title, layoutDocument, control)); } } }
public IntPtr GetHandle(object listerControl, IntPtr parentHandle) { IntPtr listerHandle = IntPtr.Zero; if (listerControl != null) { if (listerControl is WPFUserControl) { WPFUserControl wpfControl = (WPFUserControl)listerControl; elementHost = new ElementHost { Dock = DockStyle.Fill, Child = wpfControl }; wpfControl.KeyDown += wpfControl_KeyDown; elementHost.Focus(); wpfControl.Focus(); listerHandle = elementHost.Handle; } else { throw new Exception("Unexpected WPF control type: " + listerControl.GetType()); } } return(listerHandle); }