2012-10-07 3 views
6

Я использовал 16х16 точек изображения в моем приложении, так что я получаю четкие края точек на дюйм компьютера и без автоматического изменения размеров при стандартной настройке ДОИ 96.Используйте другое изображение в зависимости от настройки

Когда изменяется пользователь их dpi, изображения увеличатся, и поскольку исходные файлы имеют только 16x16, они выглядят естественно плохо. Есть ли способ предоставить несколько изображений для определенного источника изображения, и лучший из них будет выбран автоматически? Например, я предоставляю изображения размером 16x16, 20x20 и 24x24 пикселей, если размер изображения 16x16 [wpf units], поэтому у меня есть идеальное соответствие для 96, 120 и 144 точек на дюйм?

ответ

0

Как я могу думать, нужно установить image source dynamically во время выполнения на основе настроек DPI системы. В коде-за вы можете установить динамически как -

ImageViewer1.Source = new BitmapImage(new Uri(@"\\myserver\\folder1\\sample.png")); 

Слушайте это событие в своем классе, чтобы получить уведомление о настройках точек на дюйм изменившихся компьютера - Microsoft.Win32.SystemEvents.DisplaySettingsChanged. можно найти подробности о нем здесь - System Events

Кроме того, вы можете получить значение системы точек на дюйм, используя следующий код -

float dpiX, dpiY; 
Graphics graphics = this.CreateGraphics(); 
dpiX = graphics.DpiX; 
dpiY = graphics.DpiY; 

Переместить эту логику к свойству и на основе стоимости имущества, динамически установить источник изображения.

Смежные вопросы