Silverlight C# - ComponentOne拼写检查器没有加载字典

时间:2011-01-31 06:44:30

标签: c# silverlight silverlight-4.0 reference componentone

这可能是一个很长的镜头,但我正在使用ComponentOne的Spellchecker控件来实现Silverlight。我做了一个测试项目,添加了一个纯文本框和一个按钮,添加了对C1.Silverlight和C1.Silverlight.SpellChecker位的引用,并将字典文件添加到我的项目中。

在代码中,我在button1的click事件中调出了拼写检查程序,并且它是SPLENDIDLY。拼写检查器对话框显示,并完全按预期工作。

由于该测试成功,我尝试将其实现到我现有的项目中。由于我使用了完全相同的代码,所以我完全没有理由可以确定,但我没有成功。

这是我用来调用组件的代码:

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.SilverlightC1.Silverlight.Spellchecker的引用也会添加到此项目中,并且字典也以相同的方式添加。问题似乎是因为无论加载字典的原因是什么,因为spellChecker.Enabled方法返回主字典是否已被加载。如果我调用MessageBox.Show("SpellChecker Enabled = " + spellChecker.Enabled.ToString());它显示为false,即使加载字典的调用存在(如您所见)。

什么会导致字典无法加载?我是否以某种方式错误地将其添加到我的项目中?

编辑:我怀疑我已经错误地将字典添加到项目中,因为ComponentOne reference表示:

  

如果C1SpellChecker找不到   拼写字典,它不会扔   任何例外。 Enabled属性   将被设置为false和组件   将无法拼写检查任何   文本。

我只是不知道出了什么问题,因为它的添加方式与测试项目中的相同(右键单击了project.web-> Add-> Existing Item)

一如既往,谢谢!

-Sootah

2 个答案:

答案 0 :(得分:1)

您可以将字典作为嵌入资源添加到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;
                }
            }
        }
    }

答案 1 :(得分:0)

我认为这篇文章在我们的论坛中也是重复的,但会在这里首先回答。请试试这个:

1)尝试使用浏览器访问.dct文件。如果您看不到它,可能是因为您的Web服务器没有提供该类型的文件。您需要配置Web服务器以允许它。

2)验证您使用的网址是否正确.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

希望这有帮助!