Silverlight C # - ComponentOne Проверка правописания не загружает словарь - PullRequest
1 голос
/ 31 января 2011

Это может быть длинный выстрел, но я использую элемент управления проверкой правописания ComponentOne для Silverlight.Я сделал тестовый проект, добавил текстовое поле и кнопку к нему, добавил ссылки на биты C1.Silverlight и C1.Silverlight.SpellChecker и добавил файл словаря в мой проект.

В кодеЯ вызвал проверку орфографии при нажатии кнопки button1, и она работала ОТЛИЧНО.Откроется диалоговое окно проверки орфографии и работает точно так, как должно.

Поскольку этот тест прошел успешно, я попытался внедрить его в свой существующий проект.У меня не было успеха по абсолютно НИКАКОЙ причине, которую я могу определить, так как я использовал ТОЧНЫЙ ЖЕ код.

Вот код, который я использую для вызова компонента:

using C1.Silverlight;
using C1.Silverlight.SpellChecker;
using C1.Silverlight.Resources;

public partial class MainPage : UserControl
{
    C1SpellChecker spellChecker = new C1SpellChecker();


    public MainPage()
    {
        InitializeComponent();
        spellChecker.MainDictionary.LoadAsync("C1Spell_en-US.dct");

    }

    private void btnSpelling_Click(object sender, RoutedEventArgs e)
    {
        var dlg = new C1SpellDialog();
        spellChecker.CheckControlAsync(txtArticle, false, dlg);
    }

Ссылки* C1.Silverlight и C1.Silverlight.Spellchecker также добавляются в этот проект, и словарь также добавляется таким же образом.Кажется, проблема в том, что по какой-то причине словарь не загружается, потому что метод spellChecker.Enabled возвращает, был ли загружен основной словарь.Если я вызываю MessageBox.Show("SpellChecker Enabled = " + spellChecker.Enabled.ToString());, он показывает ложь, даже если есть вызов для загрузки словаря (как вы можете видеть).

Что может стать причиной загрузки словаря?Я как-то неправильно добавил его в свой проект?

РЕДАКТИРОВАТЬ : Я подозреваю, что неправильно добавил словарь в проект, потому что ссылка ComponentOne состояния:

Если C1SpellChecker не может найти словарь орфографии, он не будет выдавать никаких исключений.Для свойства Enabled будет установлено значение false, и компонент не сможет проверять орфографию любого текста.

Я просто не знаю, что не так, хотя он был добавлен так же, как и он.был в тестовом проекте (щелкните правой кнопкой мыши на project.web-> Add-> Existing Item)

Как всегда, спасибо!

-Sootah

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Вы можете добавить словарь в приложение Silverlight в качестве встроенного ресурса, а затем загрузить его, используя следующий код:

    public MainPage()
    {
        InitializeComponent();

        // load C1SpellChecker dictionary from embedded resource
        var asm = this.GetType().Assembly;
        foreach (var res in asm.GetManifestResourceNames())
        {
            if (res.EndsWith(".dct"))
            {
                using (var s = asm.GetManifestResourceStream(res))
                {
                    sc.MainDictionary.Load(s);
                    break;
                }
            }
        }
    }
0 голосов
/ 31 января 2011

Я думаю, что это сообщение дублируется и на нашем форуме, но сначала ответит здесь. Пожалуйста, попробуйте это:

1) Попробуйте получить доступ к файлу .dct с помощью браузера. Если вы не видите его, возможно, это потому, что ваш веб-сервер не обслуживает файлы такого типа. Вам нужно настроить веб-сервер, чтобы разрешить его.

2) проверьте правильность используемого вами URL. http://helpcentral.componentone.com/CS/silverlight_161/f/78/p/86955/241328.aspx#241328

3) Проверьте, правильно ли вы все настраиваете: http://helpcentral.componentone.com/CS/silverlight_161/f/78/p/81924/227790.aspx#227790

Надеюсь, это поможет!

...