2010-10-22 26 views
0

Je travaille sur une boîte de dialogue Historique des versions et j'ai créé un exemple pour le tester. Il semble, cependant, que l'échantillon ne peut pas trouver le fichier HTML:Application.GetResourceStream throws 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; 

Cette ligne dans le code ci-dessus plaids cette erreur:

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) 
    .... 

Alors .... que dois-je faire? Le fichier est nommé "VersionHistory.html" et il se trouve dans le même dossier ("Vues") que le fichier xaml.cs le demandant.

Répondre

3

Vous devez inclure l'assemblage et le chemin de la ressource:

Par exemple:

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

Avec le pack et votre exemple, vous pouvez spécifier:

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

et la devrait également fonctionner:

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

Voir http://msdn.microsoft.com/en-us/library/ms596994(VS.95).aspx et http://msdn.microsoft.com/en-us/library/aa970069.aspx pour plus d'informations.

+0

Donc le/SilverlightApplication; une partie serait le nom du projet? Dites que j'ai le fichier dans le projet 'XYZ' sous le dossier 'Views'. Comment pourrais-je entrer ça? – Entity