2008-10-31 15 views
23

¿Hay bibliotecas allí (preferiblemente un control de edición de texto autónomo) para .NET que tienen capacidades de revisión ortográfica. Me gustaría agregar el subrayado rojo típico a las palabras mal escritas en el área de edición de mi aplicación..NET Spell Check control?

Editar: Para aclarar, esto es para WinForms

+1

winforms, ASP.net o WPF? –

+4

¿Fue "mal escrito" para ser irónico? :) –

+0

Aquí está [algo] (http://www.tachyon-labs.com/sharpspell.aspx) para usted según su requisito. HTH. – Codeslayer

Respuesta

9

No es un control de la línea roja, pero: Aspell.Net es un hechizo de código abierto y libre .Net comprobación de los componentes. Basado en el proyecto Aspell de GNU, Aspell.Net es uno de los motores de ortografía multilingües más potentes disponibles. La API está escrita en C# y se comunica a través de un contenedor C++ alrededor del puerto Win32 de la API C de Aspell.

Repositorio de origen en sourceforge, revisado en febrero de 2010 (Tahnks, @magnifico).

mayo de 2012, la fuente ya no está accesible ... lo siento.

+0

El repositorio de Aspell.Net parece estar fuera de línea. –

+0

La página vinculada tiene un enlace no válido al repositorio cvs. Aquí hay un enlace actualizado: http://aspell-net.cvs.sourceforge.net/viewvc/aspell-net/ –

+0

El repositorio parece estar fuera de línea una vez más. – ean5533

2

Usted no ha mencionado si esto era para su uso basado en la web o una aplicación de escritorio, pero he utilizado netSpell en el pasado y tenía un buen éxito.

0

Infragistics tiene un spell checker control que puede hacer la revisión ortográfica en cualquier control. No lo he usado, pero puede descargar una versión de prueba de forma gratuita.

-1

FCKEditor es un buen editor de texto (basado en la web). Tiene capacidades de corrección ortográfica.

2

Telerik tiene un control para ASP.NET.

0

El componente uno proporciona un componente que hace esto pero solo mientras escribe. Lo uso y es muy rápido.

Ver here para obtener más información

12

Aspell.Net se ve bien, pero no parece ser mantenido más. No pude hacer que funcione en mi máquina.

Después de buscar en SourceForge, encontré NHunspell, que es un puerto .Net del corrector ortográfico de OpenOffice.org. Proporciona métodos para revisar la ortografía, buscar sinónimos y guiones. Se mantiene activamente en este momento, y viene con un código de muestra fácil de entender.

En las propias palabras del proyecto:

corrector ortográfico, Hypenation y Sinónimos: NHunspell

NHunspell es un código abierto hechizo corrector para .NET Framework. C# y El código de muestra de Visual Basic está disponible para la revisión ortográfica, la separación silábica y la búsqueda de sinónimos a través de tesauro.

NHunspell se basa en Hunspell y trae la Oficina Abierta la corrección ortográfica, de partición y de sinónimos para la Microsoft® .NET Framework. NHunspell es una biblioteca .NET (C#, VB) y envuelve las bibliotecas nativas Hunspell, Hyphen y MyThes.

Las bibliotecas integradas se utilizan en OpenOffice y trabajan con los diccionarios publicados en OpenOffice.org. Licencia

NHunspell se licencia bajo: GPL/LGPL/MPL. Se permite el uso gratuito en las aplicaciones comerciales de acuerdo con las licencias LGPL y MPL. Su aplicación comercial puede vincular con las DLL de NHunspell.

NHunspell

1

.NET gratuito de revisión de ortografía en torno a un cuadro de texto de WPF que se pueden utilizar de cliente o del lado del servidor se pueden ver here

divulgación completa ... escrito por su servidor con la ayuda de pila desbordamiento por supuesto :)

+0

El código se ve bien, pero su componente no aparece en el ToolBox aunque SpellCheckTextBox extiende TextBox. Supongo que este es un componente exclusivo de XAML y no está diseñado para funcionar en WinForms. –

+0

Esto no es un componente visual. Lo escribí para ejecutar en un servidor. Llamas con el texto que deseas revisar con ortografía y te devuelve la posición del error de ortografía y las sugerencias.Se ejecutará en winforms si agrega las referencias de ensamblaje correctas. Básicamente se trata de un pirateo, utilizando el cuadro de texto wpf solo para obtener el control de revisión ortográfica subyacente. El cuadro de texto nunca aparece en la pantalla. –

+0

Gracias por aclarar. Para el método y el propósito que especifique, el código es bueno, y fue una bendición ver algo "limpio" para un cambio en GitHub. Si puedo sugerir, ¿podría agregar un ejemplo de control de WinForms con un apoyo de línea similar al del control alojado por Steve? –

2

****** de Windows App-Usted puede personalizar su propio control de cuadro de texto, software de terceros sin prescripción ******

1-una vez abierto el "Propiedades" de aplicaciones en explorador de soluciones, en la pestaña "Aplicación", asegúrese de que "marco de destino" esté configurado en ".Net Framework 4", NO ".Net Framework 4 Client Profile".

2 segundos Haz clic derecho en tu aplicación en el explorador de soluciones y selecciona "Agregar referencia ...". Seleccione la pestaña ".NET" y luego mantenga presionada la tecla de control y seleccione "WindowsFormsIntegration", "System.Design", "PresentationCore", "PresentationFramework", "WindowsBase", "System.Xaml" y haga clic en "Aceptar".

3-Third haga clic derecho en su aplicación en el explorador de soluciones y seleccione "Agregar" -> "Clase". Haz una nueva clase, puedes ponerle el nombre que quieras. Abra el código para la clase que acaba de crear y elimine el código, no el archivo.

4-Forth copie y pegue el siguiente código en el archivo de clase que acaba de crear.

using System; 
using System.ComponentModel; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Forms.Integration; 
using System.Windows.Forms.Design; 

[Designer(typeof(ControlDesigner))] 
class SpellCheckTextbox: ElementHost 
{ 
    private TextBox box; 

    public SpellCheckTextbox() 
    { 
     box = new TextBox(); 
     base.Child = box; 
     box.TextChanged += (sender, e) => OnTextChanged(EventArgs.Empty); 
     box.SpellCheck.IsEnabled = true; 
     box.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden; 
     this.Size = new System.Drawing.Size(100, 200); 
    } 
    public override string Text 
    { 
     get { return box.Text; } 
     set { box.Text = value; } 
    } 

    [DefaultValue(true)] 
    public bool Multiline 
    { 
     get { return box.AcceptsReturn; } 
     set { box.AcceptsReturn = value; } 
    } 

    [DefaultValue(false)] 
    public bool ScrollBars 
    { 
     get 
     { 
      if (box.VerticalScrollBarVisibility == ScrollBarVisibility.Visible || 
       box.HorizontalScrollBarVisibility == ScrollBarVisibility.Visible) 
      { 
       return true; 
      } 
      else 
      { 
       return false; 
      } 

     } 
     set 
     { 
      if (value) 
      { 
       box.VerticalScrollBarVisibility = ScrollBarVisibility.Visible; 
       box.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible; 
      } 
      else 
      { 
       box.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden; 
       box.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden; 
      } 

     } 
    } 

    [DefaultValue(false)] 
    public bool WordWrap 
    { 
     get { return box.TextWrapping != TextWrapping.NoWrap; } 
     set { box.TextWrapping = value ? TextWrapping.Wrap : TextWrapping.NoWrap; } 
    } 

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
    public new System.Windows.UIElement Child 
    { 
     get { return base.Child; } 
     set { /* Do nothing to solve a problem with the serializer !! */ } 
    } 

} 

5- En quinto lugar, por último último paso, compilar el código, a continuación, arrastrar y soltar el nuevo control "SpellCheckTextbox", que se encuentra en la parte superior de la "Caja de herramientas" en la vista de diseño hasta su formulario.

+0

No puedo hacer que Multiline funcione sin agregar esto en el cuadro de constructor.AceptionsTab = true; box.AcceptsReturn = true; –

+0

¡Parece que funciona bien! Gracias por compartir. ¿Como funciona exactamente? ¿Está alojando un cuadro de texto WPF en un formulario de Winforms? –

+0

básicamente, eso es lo que está haciendo, – Steve