2010-10-21 5 views
0

Je suis en train d'utiliser le contrôle de l'image est une manière très basique, comme ici:Utilisation du contrôle d'image dans Silverlight (4)

http://www.silverlightshow.net/items/Using-the-Image-control-in-Silverlight-2-Beta-1.aspx

Je suis finir avec XAML comme ceci:

<Image x:Name="imgSmall" Stretch="Fill" Source="../Img/Small/105.jpg" Margin="10,0,0,0"></Image> 

Ce qui ne fonctionne pas. L'image est vide, et dans le concepteur l'URI est souligné avec un message de "... ne fait pas partie du projet ou son action de construction n'est pas définie sur" Ressource "

Si je change la source à une propriété sur mon ViewModel, définissez comme ceci:

new Uri(App.Current.Host.Source, "../Img/Small/105.jpg"); 

Ensuite, cela fonctionne très bien. Je préférerais de beaucoup utiliser la syntaxe plus simple et obtenir l'image directement. Est-ce possible?

(Les images sont d'un niveau de ClientBin)

Réglage tous mes sites web images pour construire = ressources est impossible.

Merci!

Répondre

1

Vous devez créer un convertisseur qui prend le chemin relatif de l'image et ajoute la partie "absolue". Vous pouvez transmettre l'Uri relatif en tant que valeur de liaison ou en tant que convertisseurParameter.

class ImageConverter : IValueConverter 
{ 
    // method convert() 
    return new BitmapImage(new Uri(App.Current.Host.Source, ((string)parameter)); 
    //... 
} 
0

L'ID ne fonctionne pas car l'image n'est pas ajoutée à votre projet. Ajouter l'image au projet et ensuite vous pouvez définir la source à partir de xaml.

Questions connexes