2010-10-22 101 views
0

我正在处理版本历史记录对话框,并且我创建了一个样本来测试它。不过,看来,该样品找不到HTML文件:Application.GetResourceStream抛出IOException

 var dlg = new VersionHistoryDialog(); 
     var uri = new Uri(@"pack://application:,,,/VersionHistory.html", UriKind.Absolute); 
     var source = Application.GetResourceStream(uri).Stream; // This line throws the error 
     dlg.Stream = source; 
     var result = dlg.ShowDialog(); 
     label1.Content = result; 

这条线在上面的代码抛出这个错误:

System.IO.IOException was unhandled 
    Message=Cannot locate resource 'versionhistory.html'. 
    Source=PresentationFramework 
    StackTrace: 
     at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access) 
     at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access) 
     at System.IO.Packaging.PackagePart.GetStream() 
     at System.Windows.Application.GetResourceStream(Uri uriResource) 
    .... 

所以....我该怎么办?该文件被命名为“VersionHistory.html”,并且它在与xaml.cs文件相同的文件夹(“视图”)中询问它。

回答

3

您需要包括资源的装配和路径:

例如:

Application.GetResourceStream(new Uri("/SilverlightApplication;component/EmbeddedInApplicationAssembly.png", UriKind.Relative))) 

随着包和你的榜样,你可以指定:

Application.GetResourceStream(new Uri("pack://application:,,,/View/versionhistory.html")) 

和以下也应该工作:

Application.GetResourceStream(new Uri("/XYZ;component/View/versionhistory.html", UriKind.Relative))) 

有关更多信息,请参见http://msdn.microsoft.com/en-us/library/ms596994(VS.95).aspxhttp://msdn.microsoft.com/en-us/library/aa970069.aspx

+0

所以/ SilverlightApplication;部分将是项目的名称?假设我在文件夹'Views'下的Project'XYZ'中有文件。我将如何进入? – Entity 2010-10-22 12:46:59

相关问题