Размер и работа с файлами ICO в WPF/C#

В приложении, над которым я работаю, есть изображения (часть System.Windows.Media.Imaging), создаваемые динамически в коде-бэкграунде XAML-страницы и добавляемые в окно. Я использую файлы ICO, которые содержат различные размеры и битовую глубину. Нужный мне размер - 96x96 @ 32 бит. Код автоматически выбирает самый большой размер (256x256 @ 32 bit).

Я устанавливаю свойство Image.Source следующим образом:

image.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/Application.ico"));

Теперь, поискав вокруг, я нашел Icon (часть System.Drawing), который позволит мне установить путь к строке и размер, но это часть совершенно другой библиотеки.

new Icon("pack://application:,,,/Resources/Images/Inquiry.ico",96,96);

Есть идеи, как я могу сделать свойство Image's size более управляемым? Спасибо!

EDIT: Преобразование System.Drawing.Icon в System.Media.ImageSource
Это сообщение позволяет сделать изображение меньше, однако, не имеет значения, устанавливаю ли я для значка 96x96 или 128x128, это не меняет размер отображаемого изображения. Я предполагаю, что это происходит из-за какого-то значения по умолчанию, которое отличается от System.Windows.Media.Imaging по умолчанию.

EDIT to the EDIT: Странности становятся все более странными. Когда я отображаю изображение с помощью оригинального метода, оно определенно отображается как 256x256. Однако, когда я использую метод преобразования, описанный в ссылке, размеры меняются, но они значительно уменьшаются (т.е. 256x256 выглядит ближе к 48x48).

10
задан Community 23 May 2017 в 11:55
поделиться