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):
Ich weiß wirklich nicht mehr was ich machen soll es kann doch nicht so schwehr sein das richtige icon anzuzeigen...
Lg,
Rooky420
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