自定义控件库文件资源
问题描述:
我正在开发包含其控件模板内的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);
}
答
是文件资源生成操作还是EmbeddedResource?后者将需要使用GetManifestResourceStream而不是一包Uri。如果它是一个资源,你是否证实这是该资源的正确名称?例如。在反射器/ ilspy中查看该组件的资源。
那么它的构建行为被设置为Resource not EmbeddedResource。 – 2013-02-14 18:23:45
然后我会使用GetResourceStream而不是GetContentStream。 – AndrewS 2013-02-15 03:05:19
所以你一般建议改变Application.GetContentStream(uri); – 2013-02-15 11:53:51