2013-02-13 2 views
0

컨트롤 템플릿 안에 WebBrowser 컨트롤이 포함 된 사용자 지정 컨트롤을 개발 중입니다. 사용자 정의 컨트롤을 만들고 컨트롤 템플릿 내부에서 WebBrowser에 액세스하는 것은 아무런 문제없이 작동하지만 OnAppyTemplate 메서드가 동일한 사용자 정의 컨트롤 라이브러리 DLL 안에있는 HTML 파일을 동적으로로드해야하는 상황이 있습니다. 여기에 내가 지금 사용하고있는 코드는하지만 파일 streamResourceInfo에 액세스하려고 할 때사용자 지정 컨트롤 라이브러리 파일 리소스

public override void OnApplyTemplate() 
    { 
     base.OnApplyTemplate(); 

     _host = GetTemplateChild("PART_BrowserHost") as WebBrowser; 
     if (_host == null) return; 
     _host.LoadCompleted += HostOnLoadCompleted; 

     var uri = new Uri(@"pack://application:,,,/Taicodev.Shark.Controls;component/EpubReader/Resources/Book.html", UriKind.Absolute); 
     var streamResourceInfo = Application.GetContentStream(uri); 

     var source = streamResourceInfo.Stream; 
     _host.NavigateToStream(source); 
    } 

답변

0

파일 리소스의 빌드 작업입니다거나 EmbeddedResource 항상 널? 후자는 GetManifestResourceStream을 사용해야하며 Uri 팩은 필요하지 않습니다. 리소스 인 경우 해당 리소스의 올바른 이름인지 확인 했습니까? 예 : reflector/ilspy에서 해당 어셈블리의 리소스를 살펴보십시오.

+0

'빌드 동작이 리소스가 아닌 EmbeddedResource로 설정되었습니다. –

+0

그럼 GetContentStream이 아닌 GetResourceStream을 사용할 것입니다. – AndrewS

+0

그래서 일반적으로 Application.GetContentStream (uri)을 변경하는 것이 좋습니다. –

관련 문제