これは一筋縄ではいかないかもしれませんが、私は ComponentOne の Spellchecker コントロールを 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());
と、辞書をロードするための呼び出しがあっても (ご覧のとおり)、false が表示されます。
辞書が読み込まれない原因は何ですか? どういうわけか間違ってプロジェクトに追加しましたか?
編集: ComponentOne のリファレンスに次のように記載されているため、辞書をプロジェクトに間違って追加したと思われます。
C1SpellChecker がスペル チェック辞書を見つけられない場合、例外はスローされません。Enabled プロパティは false に設定され、コンポーネントはテキストのスペルチェックを行うことができなくなります。
テストプロジェクトと同じ方法で追加されたため、何が問題なのかわかりません(project.web-> Add-> Existing Itemを右クリック)
いつもありがとうございます!
-スーター