Editeur de texte winform avec correcteur orthographique wpf

Soyez le premier à donner votre avis sur cette source.

Vue 10 636 fois - Téléchargée 1 185 fois

Description

c'est un hybride entre winform et wpf
toutes les fonctions ne sont pas implémentées , pas eu le temps de chercher comment faire
mais l'important , j'ai le résultat que je voulais , à savoir les fautes sont soulignées en rouge :)
alors vous me direz : pourquoi winform ?
parce que j'aime pas les menus wpf !!

Source / Exemple :


Imports System.Windows.Controls
Imports System.Windows.Forms.Integration
Imports System.Windows.Documents
Imports System.Windows.Media
Imports System.IO

Public Class Form1
    Dim wpfRTFHost As New ElementHost
    Dim RTFBox As New System.Windows.Controls.RichTextBox()
    Public FileName As String = String.Empty

    Public Sub New()
        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        ' allows WPF controls to be hosted in a Win32 application
        ' create an instance of RTF box and enable SpellCheck 
        System.Windows.Controls.SpellCheck.SetIsEnabled(RTFBox, True)
        ' hosts the WPF control, fills the window
        wpfRTFHost.Child = RTFBox
        ' add to the Win32 window
        Me.Controls.Add(wpfRTFHost)
        RTFBox.VerticalScrollBarVisibility = ScrollBarVisibility.Auto
        RTFBox.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto

    End Sub
' le ZIP

Conclusion :


utiliser le WPF dans winform c'est pas si compliqué que ça peut paraitre avec vb2008

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_ano2
Messages postés
5
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
29 décembre 2010

Bonjour à tous,

J'essaie de faire à peu près la même chose dans le programme que je suis en train de développer (une application qui utilise certains contrôles des WPF).
Par contre, en important System.Window.Controls, Visual Studio m'indique une erreur. J'ai lu qu'il y avait certaines librairies à mettre en référence (PresentationCore, PresentationFramework et UIAutomationProvider) mais l'erreur est toujours présente...
Est ce que vous avez une idée pour régler cette erreur.

Merci pour ce code en tout cas!
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
le spellchecker donne les corrections selon la langue de l'application , enfin je crois , donc faut localiser ton appli en français .
z'aurait du faire ça par rapport à la langue du system :)
cs_hyksos
Messages postés
27
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
24 août 2011

J'ai fini par trouver :
Dim range As TextRange
Dim contenu As String = "Mon texte récupéré d'une bdd par exemple"
range = New TextRange(RTFBox.Document.ContentStart, RTFBox.Document.ContentEnd)

Dim mem = New System.IO.MemoryStream
range.Save(mem, DataFormats.Rtf)

'affiche seulement le text
Console.WriteLine(range.Text)

'affiche le contenu au format rtf
Dim str As String = ASCIIEncoding.Default.GetString(mem.ToArray())
Console.WriteLine(str)

Dim msOut = New System.IO.MemoryStream(Encoding.UTF8.GetBytes(contenu))
range.Load(msOut, DataFormats.Rtf)

Et voilà, j'espère que ça aidera certain. Par contre j'ai pas trouvé comment empêcher le spellcheker de proposer des mots en anglais pour corriger du français..
cs_hyksos
Messages postés
27
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
24 août 2011

en fait non ça fonctionne, juste un problème de complément. Pas de problème par contre j'ai un peu de mal avec les WPF et je n'arrive pas à récupérer dans une variable le contenu
Dim range As TextRange
Dim a As String
range = New TextRange(RTFBox.Document.ContentStart, RTFBox.Document.ContentEnd)

a = range.text (ne récupère pas la mise en forme RTF)... 



Merci de m'aide un peu... et... merci pour ce code !
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
heu oui bien sur :)

beta tu sais ce que ça veut dire ????

en plus une beta chez Microsoft ça veut dire alpha chez les autres donc faut pas trop t'inquiéter :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.