WPF SpellChecker in VB.NET

In this article we demonstrate how we can check Spellings in WPF.
  • 2924
Download Files:
 

Here in this article I am explaining about WPF SpellChecker feature. WPF has an inbuilt feature of SpellChecking. TextBox and RichTextBox control in WPF offers SpellCheck support just like Microsoft Word, as Typed words are checked and correct alternatives are offered via a popup menu. To activate the SpellChecker we just need to set SpellCheck.IsEnabled property to True. So with just some lines of code we can implement an importent feature in our  applications. SpellChecker implementation needs a Grid, TextBlock and a TextBox control. All the controls in ToolBox looks like below images.

Grid
 

spell2.gif

TextBlock
 

spell3.gif

TextBox

spell4.gif
 

This ensures the TextBox automatically detect misspelled words and will put an underline on the word.

When you drag all the controls and sets properties of controls your window will look like below.

spell1.gif
 

Step 1

Firstly we drag a grid and will set the row height and column Height. As shown in the below code Snippet.

<Grid>
        <Grid.RowDefinitions >
            <RowDefinition Height="10" />
            <RowDefinition Height=" 10"/>
            <RowDefinition Height=" 10"/>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="10" />    
        
</Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width=" 10"/>
            <ColumnDefinition Width=" 90"/>
            <ColumnDefinition Width="190"/>
            <ColumnDefinition Width=" Auto"/>
            <ColumnDefinition Width=" 10"/>
        </Grid.ColumnDefinitions>
</Grid>

Step 2

Then add a TextBlock as shown Below.

<TextBlock Grid.ColumnSpan="3" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left"Margin="10,10,0,0" Name="txtsplblc"
 Text="Type Word For Spell Checking" VerticalAlignment="Top"Width="184" />

Step 3

And Lastly add a TextBox For Spell Checking.

<TextBox Grid.RowSpan="2" Height="23" SpellCheck.IsEnabled="True" AcceptsReturn="True"HorizontalAlignment=

        "Left" Margin="64,10,0,0" Name="txtsplchk" VerticalAlignment="Top"Width="200" Grid.Column=

             "2" Grid.ColumnSpan="3" />

This is my complete XAML code.

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="314" Width
="411">
    <Grid>
        <Grid.RowDefinitions >
            <RowDefinition Height="10" />
            <RowDefinition Height=" 10"/>
            <RowDefinition Height=" 10"/>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="10" />    
        
</Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width=" 10"/>
            <ColumnDefinition Width=" 90"/>
            <ColumnDefinition Width="190"/>
            <ColumnDefinition Width=" Auto"/>
            <ColumnDefinition Width=" 10"/>
        </Grid.ColumnDefinitions>
          <TextBlock Grid.ColumnSpan="3" Grid.RowSpan="2" Height="23" HorizontalAlignment="Left"
Margin="10,10,0,0" Name="txtsplblc" Text="Type Word For Spell Checking" VerticalAlignment="Top"Width="184" />
        <TextBox Grid.RowSpan="2" Height="23" SpellCheck.IsEnabled="True" AcceptsReturn="True"
HorizontalAlignment="Left" Margin="64,10,0,0" Name="txtsplchk" VerticalAlignment="Top"Width="200"
Grid.Column="2" Grid.ColumnSpan="3" />
    </Grid>
</
Window>

When you run the application the window will look like below.

spell6.gif
 

Now Type a word for Spell Checking.

spell7.gif
 

When we add some text controls to our window, misspelled words will be highlighted immediately with red zigzag underline, and a context menu will appear with spelling suggestions.
 

you can select the approriate word by right-clicking on typed word, and can correct with suggested word. Like below.

spell8.gif

Summary

In this article we learned that how to check Spellings in WPF.

Categories

More Articles

© 2019 DotNetHeaven. All rights reserved.