Konvertieren von System.Drawing.Icon in System.Media.ImageSource
Habe ich einen IntPtr gemarshallt über ein unmanaged/managed-Grenze entspricht ein Symbol Handle. Konvertieren es in ein Symbol ist trivial über die FromHandle () - Methode, und dieser war zufrieden, bis vor kurzem.
Grundsätzlich, ich habe genug thread-Verrücktheit heute, die MTA - /STA-Tanz, den ich habe das Spiel zu halten gehostet WinForm aus brechen die primäre (WPF-tastic) Benutzeroberfläche der Anwendung ist zu spröde, um mit dem stick. Also der WinForm hat zu gehen.
So, wie bekomme ich ein ImageSource-version ein Symbol?
Hinweis, ich habe versucht ImageSourceConverter ohne Erfolg.
Als ein beiseite, ich kann die zugrunde liegende Ressource für einige aber nicht alle icons beteiligt, und Sie in der Regel existieren außerhalb meiner Anwendung Montage (in der Tat, Sie sind oft vorhanden, die in nicht verwalteten dll ' s).
InformationsquelleAutor der Frage Kevin Montrose | 2009-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
UPDATE: die Einbeziehung Alex ' s Vorschlag und macht es zu einer extension Methode:
Dann können Sie tun:
InformationsquelleAutor der Antwort Kenan E. K.
Einfache Umwandlung Methode, die ohne die Schaffung einer zusätzlichen Objekte:
InformationsquelleAutor der Antwort Byte
Bei der Verwendung von Einweg-streams ist es fast immer empfehlenswert, für die Verwendung von 'Verwendung' Blöcke zu zwingen, korrekte Freigabe von Ressourcen.
Wo
icon
ist das Quell-System.Zeichnung.Symbol undthis.TargetWindow
ist das Zielsystem.Windows.Fenster.InformationsquelleAutor der Antwort Derek Bartram
InformationsquelleAutor der Antwort Darren
Einnahme von einigen über diese hat die höchste Qualität von icons für mein selbst. Das laden der icons aus einem byte-array. Ich benutze cache onload denn wenn Sie nicht bekommen Sie entsorgt Ausnahme, wenn Sie über die Speicher-stream.
InformationsquelleAutor der Antwort Justin Davis
Irgendwie ähnliches Beispiel, nur dran vom Entwickler use-cases...
InformationsquelleAutor der Antwort TarmoPikaro
Gibt es eine wirklich einfache Lösung für dieses problem.
Schritte:
(1) Bild hinzufügen, um Ressourcen im Projektmappen-explorer -> Ressourcen.resx
(2) Bearbeiten der Bild-Eigenschaften im inneren "Ressourcen" - Verzeichnis im Projektmappen-explorer und ändern Sie die "Build action" auf "Ressource"
In xaml fügen Sie die folgenden...
Icon="resources/name des Bildes" (wobei "name des Bildes" ist der name des Bildes, das Sie Hinzugefügt, um Ressourcen - siehe Punkt (1).
InformationsquelleAutor der Antwort user3442716