¿Cómo usar la palabra editor en una aplicación de WPF? Es posible que el uso de formularios de windows de alojamiento en sólo WPF? Hay otra manera de lograr eso?

He encontrado AvalonEdit pero no tiene las características que necesito. Así que, usando de esta manera, mi problema no puede ser resuelto.

También hay algunas materias que hay para alojar un control de formularios windows forms en WPF, pero no podía ser mi respuesta.

Quiero entender que hay una manera de utilizar la palabra editor de forma nativa en una aplicación wpf?
Todos Api estar disponibles en que la solución?

Gracias de antemano.

  • No creo .net tienen muy buena surport para el alojamiento de «ole doumment objetos»
  • Pero, ¿qué acerca de la DSO Agricultor paquete de Microsoft que podría palabra host editor en una aplicación de formularios windows forms. por desgracia, Microsoft eliminado del sitio web de msdn sin ninguna razón.
  • DSO Agricultor puede haber tenido para el código de una gran cantidad de interfaces Com su auto

2 Comentarios

  1. 0

    Bien, la Palabra adecuada no está técnicamente diseñado para ser alojado por otra aplicación, ya sea de WPF, WINFORMS o cualquier otra cosa.

    PUEDE utilizar la api de trucos (como SetParent) para mover el Principal de la ventana de Word en una WPF alojado ventana. Lo he hecho antes, pero es bastante difícil de negocio y es muy fácil pasar por alto las cosas que causan errores de protección general (tanto en Palabra y su aplicación).

    ¿Hay alguna razón por la que tiene que ser «Palabra» en su aplicación»? ¿Por qué no escribir un poco de la palabra de complemento y, a continuación, inicie la Palabra de su aplicación cuando sea necesario. a continuación, el Complemento puede comunicarse con su aplicación, o en su DB o lo que sea como sea necesario desde dentro de Word.

    Los usuarios pueden encontrar la que sea más utilizable enfoque en cualquier caso.

    • Word está diseñado para ser acogidos por otras aplicaciones, por ejemplo, outlook mediante el uso de OLE
    • Mi uso de la aplicación de formato xml abierto para mantener el texto, pensé que tal vez una mejor solución podría ser el uso de la palabra el editor para producir este texto. pero necesito un poco de control sobre el editor, por ejemplo, negrita algunas de texto, etc. He buscado por Internet y encontró que el uso de DSO Agricultor de hosting, existen más de control en el editor. No he podido encontrar el DSO Agricultor …
    • Lo he hecho mediante el uso de DSO artífice pero habría muchos problemas sin resolver. Tal vez es mejor escribir una palabra de complemento.
    • En realidad, las perspectivas del uso de Word como editor de correo electrónico resultó tan onerosos y problemáticas que MSOffice 2010 hizo desaparecer por completo. El editor de Outlook de una versión reducida de word, completamente separada de WinWord sí mismo.
  2. 11

    Puede alojar MS Word (2007/2010 y probablemente otras versiones) desde dentro de un control WebBrowser, esto funciona en WinForms y debe trabajar en WPF demasiado. Una .NET API se proporciona para la automatización de la Palabra, documentado aquí. La necesaria ensamblados de interoperabilidad de la nave con Office 2010, por lo que la implementación es mucho más simple que el de versiones anteriores de Office.

    Ver este Artículo de Soporte de Microsoft para más detalles sobre el alojamiento de la Palabra dentro de un control WebBrowser. La siguiente Captura de pantalla muestra la Palabra incrustado dentro de un host de aplicación de Winforms.

    La incrustación de word 2010 editor en una aplicación de wpf

    Tenga en cuenta que esto sólo funciona de forma fiable por una sola alojado instancia de la Palabra, de modo que usted no puede presentar 2 documentos de Word lado a lado en la misma aplicación. Además, la Cinta puede a veces de la falta de Palabra pero no ha provocado el bloqueo de la aplicación.

    Se requieren derechos administrativos para realizar las necesarias actualizaciones del registro, ya que hay problemas de seguridad potenciales. Un método fácil para que el registro de las actualizaciones es para escribir un guión, pero el siguiente (revisado/no probado) de código se muestra cómo se puede hacer esto en c# para Word, Excel y PowerPoint:

    using System.Security.AccessControl;
    private Dictionary<string,uint> OfficeBrowserRegKeys()
    {
    string[] officeRegKeyArray = new string[]
    {
    @"SOFTWARE\Classes\Word.Document.12",
    @"SOFTWARE\Classes\Word.DocumentMacroEnabled.12",
    @"SOFTWARE\Classes\Excel.Sheet.12",
    @"SOFTWARE\Classes\Excel.SheetMacroEnabled.12",
    @"SOFTWARE\Classes\Excel.SheetBinaryMacroEnabled.12",
    @"SOFTWARE\Classes\PowerPoint.Show.12",
    @"SOFTWARE\Classes\PowerPoint.ShowMacroEnabled.12",
    @"SOFTWARE\Classes\PowerPoint.SlideShow.12",
    @"SOFTWARE\Classes\PowerPoint.SlideShowMacroEnabled.12"
    };
    Dictionary<string,uint> officeRegKeys = new Dictionary<string, uint>();
    uint wrdVal = 0x80000024;
    uint excelVal = 0x80000A00;
    uint powerPtVal = 0x800000A0;
    foreach(string keyName in officeRegKeyArray)
    {
    if (keyName.Contains("Word"))
    {
    officeRegKeys.Add(keyName, wrdVal);
    }
    else if (keyName.Contains("Excel"))
    {
    officeRegKeys.Add(keyName, excelVal);
    }
    else
    {
    officeRegKeys.Add(keyName, powerPtVal);
    }
    }
    return officeRegKeys;
    }
    private void setNewOfficeKeys()
    {
    uint editFlag = 0x00010000;
    Dictionary<string,uint> officeRegKeys = OfficeBrowserRegKeys();
    foreach (KeyValuePair<string, uint> kvp in officeRegKeys)
    {
    try
    {
    RegistryKey rKey = Registry.LocalMachine.OpenSubKey(kvp.Key, 
    RegistryKeyPermissionCheck.ReadWriteSubTree,
    System.Security.AccessControl.RegistryRights.SetValue);
    rKey.SetValue("BrowserFlags", unchecked((int)kvp.Value),
    RegistryValueKind.DWord);
    rKey.SetValue("EditFlags", unchecked((int)editFlag),
    RegistryValueKind.DWord);
    }
    catch (Exception e) { string msg = e.Message; }
    }
    }
    • Muchas gracias @pgfearo. La solución es aproximadamente lo que yo estoy buscando, pero en realidad quiero palabra host editor sólo, sin su cinta de control. Como cuestión de hecho de su navegador de web hosting solución no dar mi control requerido en el propio editor. Usando de esa manera, voy a tener problemas con el control del bajo nivel de las características del editor, por ejemplo el margen de la página o la obtención de marcadores en el editor. ¿Cómo estás trabajando con Word en su aplicación, @pgfearo? gracias de antemano.
    • Rezaei. Sí, el de arriba es sólo utilizado como un doc viewer en mi aplicación. Usted obtener mucho más concretamente el control de alojamiento de su aplicación dentro de Word como un complemento COM, hice esto en otro concepto del proyecto – proyecto de vídeo. El [la documentación de Microsoft] (msdn.microsoft.com/en-us/vsto/dd164295.aspx) proporciona detalles sobre este enfoque, el uso de Visual Studio 2010.

Dejar respuesta

Please enter your comment!
Please enter your name here