C# [WPF] Richtige Auflösung von Icon mit mehreren Größen

Rooky420

Cadet 4th Year
Registriert
Nov. 2015
Beiträge
98
Hallo,

Ich habe ein ".ico" file mit mehreren Auflösungen (256x256, 128x128, 64x64, 48x48, 32x32, 16x16Pixel).
Wenn ich das Icon aus ImageSource für ein WPF Control verwende wird jedoch nicht die richtige Auflösung verwendet sondern (denke ich) einfach die 256x256 Auflösung und dann runterskalliert. das Skallieren ist jedoch in WPF sehr schlecht wodurch das Icon nicht mehr so aussieht wie es soll. Also so ziemlich unerkennbar.
Es soll möglich sein dass das bild je nach Anzeigeart (/Systemsteuerung/Darstellung und Anpassung/Anzeige) die richtige Auflösung aus dem .ico bild nimmt.

Gibt es eine möglichkeit dass WPF automatisch die bestmögliche Auflösung verwendet?
Ich hab nach sehr langen Googlen nichts gefunden...

Kann ich irgendwie herausfinden welche Auflösung ich bei einem bestimmten Control brauche? (z.B. RibbonButton)
Dann könnte ich villeicht irgendwie per binding diese Methode aufrufen könnte (nur ein beispiel):
Code:
public BitmapFrame GetBitmapFrameFromICO(Uri uri, int size)
        {
            var decoder = BitmapDecoder.Create(uri,
                                      BitmapCreateOptions.DelayCreation,
                                      BitmapCacheOption.OnDemand);

            return decoder.Frames.SingleOrDefault(f => f.Width == size);
        }

Ich weiß wirklich nicht mehr was ich machen soll es kann doch nicht so schwehr sein das richtige icon anzuzeigen... :(

Lg,
Rooky420
 
<Image Source="bild.png" Stretch="None" />

Also dass dein Bild gestreckt wird, liegt mit an Sicherheit grenzender Warscheinlichkeit an deinem XAML-Code.

256*256 sollte perfekt auf 128*128,64*64 etc. herunterskalieren, da es jeweils die Hälfte ist. Verzerrungen sollte es nur bei
schlecht zu interpolierenden Werten geben, wie z.B. 1/3.
Um zu skalieren, kannst du das Property LayoutTransform verwenden.
 
Zurück
Oben