Silverlight C # - ComponentOne Spellchecker não carregando dicionário
-
27-10-2019 - |
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
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;
}
}
}
}