2013-02-13 133 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