J'ai trouvé une solution à mon problème et je vais mettre cette réponse comme un wiki communautaire.
Comme prévu, je n'ai pas pu accéder au système de fichiers, afficher SaveFileDialog
ou enregistrer l'image dans le Presse-papiers en raison des limitations de sécurité partielle-confiance.
Alors, je l'ai créé un .ashx handler sur le site, dont mon application XBAP est déployée, qui reçoit une certaine id d'image dans la chaîne d'URL, interroge l'image de la DB, et renvoie l'image (context.WriteBinary
) sous l'en-tête de contenu approprié "image/jpeg".
Dans mon XBAP, au lieu du contrôle Image
j'ai mis le contrôle WebBrowser
, fourni avec l'URI approprié (vous pourriez avoir besoin a trick to bind the Source property). Vous pouvez uniquement spécifier un URI pointant vers le site d'origine de votre application XBAP. Il peut être un chemin absolu, ou il peut utiliser la syntaxe spéciale dont pack://siteoforigin:,,
Voila, maintenant l'image prend en charge le menu standard contextuel du navigateur avec « Enregistrer ... », « Définir comme fond » et tous les autres éléments utiles :-)