2013-02-13 107 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。如果它是一个资源,你是否证实这是该资源的正确名称?例如。在反射器/ ilspy中查看该组件的资源。

+0

那么它的构建行为被设置为Resource not EmbeddedResource。 – 2013-02-14 18:23:45

+0

然后我会使用GetResourceStream而不是GetContentStream。 – AndrewS 2013-02-15 03:05:19

+0

所以你一般建议改变Application.GetContentStream(uri); – 2013-02-15 11:53:51

相关问题