2012-10-07 37 views
6

我在我的應用程序中使用16×16像素的圖像,讓我得到清晰的邊緣,並在96使用不同的圖像取決於計算機的DPI設置

標準dpi設置不自動調整大小,當用戶更改他們的dpi設置,圖像被放大,並且由於源文件只有16x16,它們看起來自然不好。有沒有一種方法可以爲特定圖像源提供多個圖像,最好的圖像會自動選擇?例如,我提供的圖像大小爲16x16,20x20和24x24,像素,當圖像的大小爲16x16時[wpf單位],所以我有一個完美匹配的96,120和144 dpi?

回答

0

我能想到的最好的方法是根據系統的DPI設置在運行時設置image source dynamically。在代碼隱藏,你可以動態地設置喜歡 -

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

聽此事件在你的類收到通知改變了計算機的dpi設置 - Microsoft.Win32.SystemEvents.DisplaySettingsChanged。它的詳細信息可以在這裏找到 - System Events

此外,您還可以使用下面的代碼得到系統的DPI值 -

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

推動這一邏輯的屬性和基於屬性值,動態設置圖像源。

相關問題