Pergunta

Isso pode ser um tiro no escuro, mas estou usando o controle Spellchecker do ComponentOne para Silverlight. Fiz um projeto de teste, adicionei uma caixa de texto simples e um botão a ele, adicionei as referências aos bits C1.Silverlight e C1.Silverlight.SpellChecker e adicionei o arquivo de dicionário ao meu projeto.

No código, chamei o corretor ortográfico no evento de clique do button1 e funcionou SPLENDIDLY. A caixa de diálogo do corretor ortográfico é exibida e funciona exatamente como deveria.

Como o teste foi bem-sucedido, tentei implementar isso em meu projeto existente. Não tive sucesso por absolutamente NENHUM motivo que possa determinar, já que usei o MESMO código EXATAMENTE.

Este é o código que uso para chamar o componente:

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);
    }

As referências a C1.Silverlight e C1.Silverlight.Spellchecker são adicionadas a este projeto também, e o dicionário também foi adicionado da mesma maneira. O problema parece ser que, por algum motivo, o dicionário não está carregando, porque o método spellChecker.Enabled retorna se o dicionário principal foi carregado ou não. Se eu chamar MessageBox.Show("SpellChecker Enabled = " + spellChecker.Enabled.ToString());, ele mostrará falso, embora a chamada para carregar o dicionário esteja lá (como você pode ver).

O que faria com que o dicionário não carregasse? Eu adicionei ao meu projeto incorretamente de alguma forma?

EDITAR : Suspeito que adicionei o dicionário ao projeto incorretamente, porque o Referência do ComponentOne estados:

Se C1SpellChecker não conseguir encontrar o dicionário ortográfico, não vai jogar quaisquer exceções. A propriedade Enabled será definido como falso e o componente não será capaz de verificar a ortografia de nenhum texto.

Só não sei o que há de errado porque foi adicionado da mesma forma que foi no projeto de teste (botão direito do mouse em project.web-> Adicionar-> Item Existente)

Como sempre, obrigado!

-Sootah

Foi útil?

Solução

Acho que esta postagem também está duplicada em nosso fórum, mas responderei primeiro aqui.Por favor, tente isto:

1) Tente acessar o arquivo .dct usando seu navegador.Se você não consegue ver, provavelmente é porque seu servidor web não está servindo esse tipo de arquivo.Você precisa configurar o servidor da web para permitir isso.

2) verifique se o URL que você está usando está correto.http://helpcentral.componentone.com/CS/silverlight_161/f/78/p/86955/241328.aspx#241328

3) Verifique se você está configurando tudo corretamente: http://helpcentral.componentone.com/CS/silverlight_161/f/78/p/81924/227790.aspx#227790

Espero que isso ajude!

Outras dicas

Você pode adicionar o dicionário ao aplicativo Silverlight como um recurso incorporado e carregá-lo usando este código:

    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;
                }
            }
        }
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top