自定义控件库文件资源

时间:2013-02-13 23:16:21

标签: c# wpf resources class-library

我正在开发自定义控件,其控件模板中包含WebBrowser控件。创建自定义控件和访问控件模板内的WebBrowser没有任何问题,但我有一种情况,OnAppyTemplate方法需要动态加载HTML文件,该文件位于相同的自定义控件库DLL中。这是我目前正在使用的代码,但是当我尝试访问文件时,streamResourceInfo始终为null

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

1 个答案:

答案 0 :(得分:0)

是文件资源的构建操作还是EmbeddedResource?后者需要使用GetManifestResourceStream而不是包Uri。如果是资源,您是否验证了这是资源的正确名称?例如。在reflector / ilspy中查看该程序集的资源。