2011-02-01 2 views
6

J'ai une application Winforms existante qui a plusieurs formulaires avec les mêmes images de bouton sur les deux boutons principaux pour chaque formulaire (OK et Annuler). Les images sont définies dans VS Designer en définissant la propriété Image de Button sur "Local resource" et en important l'image souhaitée.Extraction d'une image de ressource locale à partir de la propriété Formulaire/Bouton/Image de Winforms

Je n'ai pas accès aux fichiers image d'origine. Comment puis-je extraire une image de la propriété Image d'un contrôle Button dont la propriété Image a été définie de cette façon?

Screenshot

Répondre

1

En fait, les images ne sont pas stockées dans le système de fichiers, mais plutôt ajouté au fichier resx de votre formulaire (par exemple MainForm.resx) en tant que représentation sérialisée codé en base64. Si vous savez comment, vous pouvez base64-décoder cette chaîne, enregistrer le résultat dans un fichier plat et le nommer correctement (vous devez connaître le type d'image pour cela).

+0

Vous pouvez décoder les chaînes Base64 à un fichier binaire ici: http://www.freeformatter.com/base64-encoder.html – Dan

6

J'ai trouvé une méthode beaucoup plus facile que de décoder manuellement le Base64.

En supposant que votre formulaire est appelé Form1:

  1. Expand Form1.cs dans l'Explorateur de solutions.
  2. Double-cliquez sur Form1.resx pour ouvrir le concepteur de ressources.
  3. Faites un clic droit sur l'image que vous souhaitez extraire.
  4. Choisissez "Exporter vers fichier ...".

Cela s'applique aux ressources avec Persistence défini sur "Embedded in .resx". Si Persistence est "Lié au moment de la compilation", l'image existe déjà en tant que fichier dans le répertoire Resources de votre projet.

Screenshot

+0

@KyleMit Merci pour la capture d'écran! – Dan

+1

Encore plus facile. sélectionnez-les dans cette fenêtre et ctrl + c, et collez-les sur votre bureau ou dossier – Franck

Questions connexes