Latest News

  • New Rich Text Editor User Control
    Feb 19, 2010

    By popular request, here we present a re-usable User Control containing the Liquid RichTextBox along with the most common formatting functions included.

  • Silverlight 3 Controls V5.2.7 Released
    Feb 19, 2010

    This release includes several fixes for issues raised in the forum. The main improvement is to the RichTextBox which now provides access and methods to the document elements allowing...

  • Super Shoot Em Up Game
    Feb 04, 2010

    Added to the games section is the new Super Shoot 'Em Up game. Take control of a tank with your aim being to blow up your opposing tanks and collect all the powerups.

  • Silverlight 3 Controls V5.2.6 Released
    Feb 04, 2010

    This release includes some minor fixes for several forum posts. Please see the notes on the download page for full details on what has changed.

  • Chaos Tournament Game
    Jan 24, 2010

    Launched today is the new Games section which contains the new Silverlight only Chaos Tournament game. This game is a remake of a classic 1985 ZX Spectrum game Chaos.

Silverlight Spell Checker Component

This free Silverlight Spell Checker component allows you to apply real-time spell checking functionality to your Silverlight applications with the minimum of code.  Dictionaries are not supplied, however they can be freely downloaded and used with this component.

To use the Spell Checker you will need to add a reference to Liquid.Components.dll in your project.


How to Use the Spell Checker Component

To demonstrate the Spell Checker component we have a single TextBox and a Button.  The Button Click event handler takes the textbox text and runs it through the spell checker and populates a ListBox with spelling suggestions if the input word was not found in the dictionary.  In your Silverlight XAML:

<UserControl x:Class="SpellChecker.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="400" Height="300">
    <Canvas>
        <TextBox x:Name="word" Canvas.Left="5" Canvas.Top="10" Width="200" />
        <Button Content="Check" Canvas.Left="220" Canvas.Top="10" Click="Button_Click" />
        <TextBlock Canvas.Left="5" Canvas.Top="40" Text="Suggestions" FontSize="25" />
        <ListBox x:Name="suggestions" Canvas.Left="5" Canvas.Top="75" Width="200" Height="100" />
    </Canvas>
</UserControl>


In your C# code behind file we handle the button click event and make the call to CheckWord() which returns true to indicate a correct word.  If the word is incorrect we call GetSuggestions() which returns a List<string> collection of spelling suggestions which we use to simply populate our ListBox.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SpellChecker
{
    public partial class Page : UserControl
    {
        private Liquid.Components.SpellChecker _spellChecker;

        public Page()
        {
            InitializeComponent();

            _spellChecker = new Liquid.Components.SpellChecker((this.GetType().Assembly.GetManifestResourceStream("SpellChecker.dictionary.en-US.dic")));
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            bool success = _spellChecker.CheckWord(word.Text);
            List<string> suggest;

            if (!success)
            {
                suggest = _spellChecker.GetSuggestions(word.Text);
                suggestions.Items.Clear();

                foreach (string s in suggest)
                {
                    suggestions.Items.Add(new ListBoxItem() { Content = s });
                }
            }
        }
    }
}


Example Silverlight Spell Checker:

Silverlight Spell Checker

Latest Forum Posts

Here are latest posts from around the forums, if you have a question about any of the Liquid controls you can get your answers in the Forum.

For this case you need to add:


    <add name="HttpGet"/>


I think...

Hi,


I try to use your liquid uploader engin to upload files on my server. When I choose a large file (50mb), the browser memory never stop to grow... I try on explorer 8 and firefox 3.5.8 and I have the same results... Is it possible to verify that on your side?


Thanks!


Flyd

constantine posted on Files bigger than 32Kb

Just Uncomment the bold part.


//public string Upload(string id, string mode, string path, string name, string targetname, string filedata, bool overwrite, string tag, bool final)

    public string Upload(string id, string mode, string path, string name, string filedata, bool overwrite, string tag, bool final)

    {

        string filename = string.Empty;


        if (!path.StartsWith("ClientBin/"))

        {

            return "";

        }


        name = Regex.Replace(name, "[^a-zA-Z0-9 \\-\\._!]", "");

        if (name.EndsWith(".dll") || name.EndsWith(".ascx") || name.EndsWith(".aspx"))

        {

            return "";

        }


        try

        {

            filename = Server.MapPath("~") + @"\" + path.Replace("/", @"\") + name;


            if (mode == "new")

            {

                if (File.Exists(filename) == true)

                {

                    if (overwrite)

                    {

                        File.Delete(filename);

                    }

                    else

                    {

                        return "File Already Exists";

                    }

                }


                WriteFile(filename, Convert.FromBase64String(filedata), FileMode.Create);

                //WriteFile(filename, System.Text.Encoding.UTF8.GetBytes(filedata), FileMode.Create);

                

            }

            else

            {

                WriteFile(filename, Convert.FromBase64String(filedata), FileMode.Append);

            }

        }

        catch (Exception ex)

        {

            File.Delete(filename);

            return "File Write Error: " + ex.Message;

        }


        return "ok";

    }

Hi Lance,


I have modified the demo and integrated it with a test website.  This can be downloaded from the demos page as usual and should help point you in the right direction.


Thanks!

Okay, Passing data from a memory stream rather than the file dialog as in my example will work just the same.  I assume you have placed a breakpoint on your web service when testing and it is never called?


Looking at your web service it looks fine and if it is never called suggests the problem is with this Silverlight client and quite possibly the memory data stream, is it possible for you to post/email your full Silverlight or at least a test application that reproduces the problem?


Thanks!

dan posted on File Explorer error

Hi,


That demo is the fully running application code, the web services simply need to be added to your website in the usual manner.  The URL in the Silverlight demo code needs to be changed to the URL of your website and it should work.


Ideally you need IIS, but you can use Visual Studio to host the website but you will need to change the URL reference to whatever Visual Studio gives your website including any port number.


Thanks!

Silverlight Controls

  • Rich TextBox

    Create and edit rich content with this slick and expandable Rich TextBox...

  • TreeView

    This easy to use TreeView comes with drag and drop, sorting, searching and much more...

  • Context Menu

    You too can have cool popup context menus in your Silverlight applications...

  • Resizable Dialog

    Draggable and resizable popup dialogs are what serious Silverlight developers need...

  • Spell Checker

    Real-time spell checking in Silverlight? We did it first here...