Esempio n. 1
0
        /// <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);
        }