Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[WPF] Les "pack://" et l'accès aux ressources avec WPF

Avec WPF (Windows Presentation Foundation), il existe une syntaxe particulière à utiliser lorsque l'on souhaite accéder à une ressource, qu'elle soit "embarquée" dans notre assembly ou non Smile

Par exemple, il arrive très fréquemment que l'on voit (ou que l'on utilise), dans des applications, ce genre de syntaxe:

<Image Source="pack://application:,,,/Images/Sunset.jpg" />

Mais combien d'entre vous savent exactement à quoi cela correspond, à quoi cela fait réfrence ?

Ce post a justement pour but de vous aider à comprendre de quoi il s'agit....

 

Pour utiliser une ressource, avec WPF, il faut utiliser un schéma URI permettant de spécifier des emplacements. Ce schéma est de la forme suivante:


pack://<package URI>/<part path>


Le "package URI" est une URI absolue valide qui a été encodée pour convertir les slashes (\) en virgules (,).
L'URI peut-être un document XPS ou bien une valeur qui a été codée en dur dans le framework et qui fait référence à des emplacements spéciaux.

Une des valeurs déjà codée est par exemple application:///. Cela permet de faire référence aux ressources incorporées.

Une autre valeur possible est siteoforigin:///. Elle fait référence à l'URI où l'application navigateur (fichier XBAP) a été déployée, de telle façon que l'application puisse utiliser les ressources de ce site.

Voici des exemples de schémas URI que vous pouvez utiliser:

pack://file:,,,c:,MyDocs,foo.xps/Chapter1.xaml
pack://application:,,,/pages/Page1.xaml
pack://siteoforigin:,,,/foo.xml

 

Pour en savoir plus, vous pouvez lire ces posts d'Ashish Shetty (Program Manager WPF):

 

A+

 

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: lundi 6 novembre 2006 10:15 par Thomas LEBRUN
Classé sous :

Commentaires

Dohz a dit :

Hello,

après avoir ce poste j'ai toujours la problématique suivante :

dans un fichier de ressource chargé au lancement de mon application (fichier resourceDictionary en xaml), j'ai différents styles, brushes etc. ainsi que des ImageSource.

Ces éléments contiennent le chemin vers des images. Mon souci c'est que lors du XamlReader.Load(...) au lancement de l'application, il me jète en me disant que le fichier spécifié pour ImageSource est introuvable (chemin relatif).

J'aurai voulu écrire quelque chose du genre :

<ImageSource x:name="myImageS">pack://{myWorkingDirectory},,,/icones/monIcone.png</ImageSource>

# mars 9, 2011 12:00

Dohz a dit :

Hello,

après avoir ce poste j'ai toujours la problématique suivante :

dans un fichier de ressource chargé au lancement de mon application (fichier resourceDictionary en xaml), j'ai différents styles, brushes etc. ainsi que des ImageSource.

Ces éléments contiennent le chemin vers des images. Mon souci c'est que lors du XamlReader.Load(...) au lancement de l'application, il me jète en me disant que le fichier spécifié pour ImageSource est introuvable (chemin relatif).

J'aurai voulu écrire quelque chose du genre :

<ImageSource x:name="myImageS">pack://{myWorkingDirectory},,,/icones/monIcone.png</ImageSource>

# mars 9, 2011 12:01

Dohz a dit :

Comment faire pour mettre des chemins relatifs basés non pas sur "application" ou sur "siteoforigin", mais sur le répertoire de travail (dans les propriétés du projet = le working directory)?

(heu il n'y aurait pas un bug avec les commentaires?)

# mars 9, 2011 12:03
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le il y a 19 heures et 56 minutes

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le il y a 22 heures et 29 minutes

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39