就在最近,我将Windows切换到125%DPI缩放模式,发现我的应用程序执行了我不希望它执行的操作。
其中一个问题是缩放我在应用中显示的图像。让我们假设它可以是任何图像,对于这个例子,让它为600像素宽的图像。我希望它保持这样。我可以缩放界面的其余部分,但是这个特定的图像控件必须与图像一样宽,并且不能放大到125%(到750像素)。我怎样才能做到这一点?在发生一些与DPI相关的事件后,我应该改变控制尺寸吗?
另外,第二个问题是,为什么WPF对我撒谎?当我得到ActualWidth它告诉我600像素,但画笔不是说谎 - 我希望 - 当我在屏幕截图上测量宽度时它显示750像素。我是否应该在任何特定事件后检查此值,以便获得实际的ActualWidth?
一些代码:
imgNav.Source = ImageManager.LoadBitmapImage(uri);
BitmapImage bimp = imgNav.Source;
imgNav.Height = bimp.PixelHeight;
imgNav.Width = bimp.PixelWidth;
...
txtFoo.Text = imgNav.ActualWidth.ToString();
提前感谢您提出任何建议。