这可能是一个长镜头,但我正在为 Silverlight 使用 ComponentOne 的 Spellchecker 控件。我做了一个测试项目,添加了一个纯文本框和一个按钮,添加了对 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)
一如既往,谢谢!
-苏塔