我在我的应用程序中使用了16x16像素图像,因此在标准dpi设置为96时,我获得了清晰的边缘并且没有自动调整大小.
当用户更改其dpi设置时,图像会变大,并且由于源文件仅为16x16,因此它们看起来自然很糟糕.有没有办法可以为特定的图像源提供多个图像,最好的图像会自动选择?例如,当图像尺寸为16x16 [wpf单位]时,我提供尺寸为16x16,20x20和24x24 像素的图像,所以我有一个完美匹配96,120和144 dpi?
image source dynamically我能想到的最好的办法是根据系统的 DPI 设置在运行时设置。在代码隐藏中,您可以动态设置,例如 -
ImageViewer1.Source = new BitmapImage(new Uri(@"\\myserver\\folder1\\sample.png"));
Run Code Online (Sandbox Code Playgroud)
在课堂上收听此事件,以获取有关计算机 dpi 设置更改的通知 - Microsoft.Win32.SystemEvents.DisplaySettingsChanged。详细信息可以在这里找到 -系统事件
另外,您可以使用以下代码获取系统 dpi 值 -
float dpiX, dpiY;
Graphics graphics = this.CreateGraphics();
dpiX = graphics.DpiX;
dpiY = graphics.DpiY;
Run Code Online (Sandbox Code Playgroud)
将此逻辑移至属性并根据属性值动态设置图像源。
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |