6

アプリケーションで 16x16 ピクセルの画像を使用したので、標準の dpi 設定 96 で鮮明なエッジが得られ、自動サイズ変更は行われません。

ユーザーが dpi 設定を変更すると、画像が拡大され、ソース ファイルが 16x16 しかないため、自然に見栄えが悪くなります。特定の画像ソースに複数の画像を提供する方法はありますか?最適な画像が自動的に選択されますか? たとえば、画像のサイズが 16x16 [wpf units]の場合、16x16、20x20、および 24x24ピクセルのサイズの画像を提供するので、96、120 、および 144 dpi に完全に一致するものが 1 つあります。

4

1 に答える 1

0

私が考えることができる最善のことはimage source dynamically、システムの DPI 設定に基づいて実行時に設定することです。コードビハインドでは、次のように動的に設定できます-

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

クラスでこのイベントをリッスンして、コンピューターの dpi 設定が変更されたことを通知しますMicrosoft.Win32.SystemEvents.DisplaySettingsChanged。詳細はこちら -システムイベント

また、次のコードを使用してシステム dpi 値を取得できます -

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

このロジックをプロパティに移動し、プロパティ値に基づいて画像ソースを動的に設定します。

于 2012-10-07T12:32:31.853 に答える