2011-01-31 8 views
1

길게 나타날 수 있지만 Silverlight에 대해 ComponentOne의 맞춤법 검사기 컨트롤을 사용하고 있습니다. 테스트 프로젝트를 만들고 일반 텍스트 상자와 버튼을 추가하고 C1.Silverlight 및 C1.Silverlight.SpellChecker 비트에 대한 참조를 추가하고 사전 파일을 프로젝트에 추가했습니다.Silverlight C# - ComponentOne 맞춤법 검사기가로드되지 않음

코드에서 button1의 click 이벤트에 대한 맞춤법 검사기를 호출하고 SPLENDIDLY로 작업했습니다. 맞춤법 검사기 대화 상자가 나타나고 올바르게 작동합니다.

이 테스트가 성공적 이었기 때문에이 프로젝트를 기존 프로젝트에 구현하려고했습니다. 내가 정확히 같은 코드를 사용했기 때문에 나는 결정할 수있는 아무런 이유없이 성공을 거두지 못했습니다. 뿐만 아니라이 프로젝트에 추가됩니다 C1.SilverlightC1.Silverlight.Spellchecker

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

참고 문헌,뿐만 아니라 같은 방식으로 추가로 사전 :

는 여기가 구성 요소를 호출하는 데 사용하는 코드입니다. spellChecker.Enabled 메서드는 주 사전이로드되었는지 여부를 반환하기 때문에 어떤 이유로 든 사전이로드되지 않는 것으로 보입니다. MessageBox.Show("SpellChecker Enabled = " + spellChecker.Enabled.ToString());으로 전화하면 사전을로드하라는 호출이 있어도 false를 표시합니다.

사전을로드하지 못하게하는 원인은 무엇입니까? 어떻게 든 내 프로젝트에 잘못 추가 했습니까?

편집이 : 나는 ComponentOne reference 상태가 있기 때문에 내가 잘못 프로젝트에 사전을 추가 한 것으로 의심되는 :

C1SpellChecker가 맞춤법 사전을 찾을 수없는 경우 예외가 발생하지 않습니다. Enabled 속성 은 false로 설정되고 구성 요소 은 텍스트의 맞춤법 검사를 수행 할 수 없습니다.

난 그냥은 (는) 테스트 프로젝트 있다는 같은 방법으로 추가 되었기 때문에 비록 잘못 모르는

(오른쪽은 project.web-> 추가 -> 기존 항목에 클릭) 언제나처럼, 고마워!

-Sootah

+0

당신은 C1Spell_en-US.dct이 spellchechecker를로드하는 데에도 사용할 수 있는지 확인합니다. –

+0

제대로 추가되었는지, 경로를 변경해야하는지는 모르겠지만 사용 여부, 테스트 할 속성 등을 확인하는 방법을 모릅니다. – Sootah

답변

0

는이 게시물뿐만 아니라 포럼에서 중복 생각하지만, 여기에 먼저 응답 할 것이다. 이것을 시도하십시오 :

1) 브라우저를 사용하여 .dct 파일에 액세스하십시오. 이 파일을 볼 수 없으면 웹 서버가 해당 유형의 파일을 제공하지 않기 때문일 수 있습니다. 이를 허용하려면 웹 서버를 구성해야합니다.

2) 사용하는 URL을 확인는 correct.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

희망이 있습니다.

+0

주요 문제는 어떤 이유로 든 프로젝트가 localhost : // 대신 file : //에서 실행되기 시작했습니다. 귀하의 예제에 표시된대로 URI를 설정 한 후 (이벤트 핸들러 코드도 매우 편리했습니다.) 개발 서버에서 실행하면 아름답게 작동합니다. 그러나이 특정 응용 프로그램은 실제로 웹 서버를 사용하지 않고 사용자에게 직접 배포되기 때문에 file : // 비트에서도 실행할 수 있기를 원합니다. 어떻게해야하는지에 대한 제안? 감사합니다. – Sootah

1

당신은 포함 리소스로 실버 라이트 응용 프로그램에 사전을 추가하고이 코드를 사용하여로드 할 수 :

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; 
       } 
      } 
     } 
    } 
관련 문제