Comment obtenir un Uri de l'image stockée dans les ressources
J'ai deux .png
les fichiers ajoutés à mes ressources dont j'ai besoin pour accéder à leurs Uri quand on fait la liaison.
Mon xaml
code est comme suit:
<Grid>
<Image>
<Image.Source>
<BitmapImage DecodePixelWidth="10" UriSource="{Binding Path=ImagePath}"/>
</Image.Source>
</Image>
</Grid>
et la binding
code à l'aide de ImagePath est:
ImagePath = resultInBinary.StartsWith("1") ? Properties.Resources.LedGreen : Properties.Resources.ledRed;
Cependant
Properties.Resources.LedGreen
renvoie une Bitmap
au lieu de String
contenant l'Uri de l'image.
Je veux juste savoir comment extraire de la valeur sans avoir besoin de l'adresse d'un chemin de l'image dans le répertoire dans lequel il est stocké. (Ce qui honnêtement, je ne suis pas sûr, c'est une bonne chose à faire que je ne pouvais pas trouver une situation similaire sur le net).
S'il vous plaît laissez-moi savoir si il ya même une méthode préférée pour celui que je suis en train d'utilisation, si disponible.
Vous devez vous connecter pour publier un commentaire.
Dans une application WPF vous aurait généralement pas stocker des images dans
Properties/Resources.resx
et d'y accéder par le biais de laProperties.Resources
classe.Au lieu de cela il suffit d'ajouter les fichiers d'image à votre projet Visual Studio comme des fichiers normaux, peut-être dans un dossier nommé "Images" ou similaire. Ensuite, vous devez définir leur
Build Action
àResource
, ce qui se fait dans la fenêtre des Propriétés. Vous vous y rendre par exemple en cliquant-droit sur le fichier image et sélectionnez leProperties
élément de menu. Notez que la valeur par défaut de laBuild Action
devrait êtreResource
pour les fichiers d'image, de toute façon.Pour accéder à ces images de ressources à partir du code ensuite, vous devez utiliser un Pack de URI. Ci-dessus, le nom de dossier "Images" et un fichier image nommé "LedGreen.png", la création d'un tel URI devrait ressembler à ceci:
De sorte que vous pourriez peut-être déclarer une propriété de type Uri:
et réglez comme ceci:
Enfin votre code XAML doit regarder comme indiqué ci-dessous, qui repose sur le type de conversion à partir de l'Uri pour ImageSource:
Resource
Action de Construire ajoute les fichiers d'image à l'assemblée. Si elles sont contenues dans le fichier exécutable.Déclarer la
Properties.Resources.LedGreen
propriétéImageSource
et réglez-Uri emplacement plutôt que de l'objet Bitmap.Ou si vous insistez, de le stocker sous forme de bitmap, vous pouvez obtenir le code source en retournant
Properties.Resources.LedGreen.ImageSource
qui sera de typeImageSource
.Je préfère la première approche.