0

コントロールテンプレート内にWebBrowserコントロールを含むカスタムコントロールを開発しています。カスタムコントロールの作成とコントロールテンプレート内のWebBrowserへのアクセスは問題なく機能しますが、OnAppyTemplateメソッドが同じカスタムコントロールライブラリDLL内にあるHTMLファイルを動的にロードする必要がある状況があります。これが私が現在使用しているコードですが、ファイルにアクセスしようとすると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);
    }
4

1 に答える 1

0

ファイルResourceのビルドアクションですか、それともEmbeddedResourceですか?後者では、パックUriではなくGetManifestResourceStreamを使用する必要があります。リソースの場合、それがリソースの正しい名前であることを確認しましたか?たとえば、リフレクター/ilspyでそのアセンブリのリソースを調べます。

于 2013-02-14T01:55:52.770 に答える