如何使用Windows Phone / C中的像素#

Windows Phone 8使用比例因子值缩放元素,因此所有像素都是虚拟的800×480,而ActualWidth/ActualHeight等值则返回“假”800×400值。

我正在显示一个WritableBitmap ,它是在我的UI背景上动态构建的,并且希望它由所有可用像素构成,而不是缩放的800×480图像。 如何“禁用”缩放并将虚拟像素映射为实际设备像素?

我知道如何从比例因子计算值,但我希望它能够与图像背景一起使用,并且理想地完全禁用该function,因为它对于我们的特定用例是不必要的。

似乎没有办法“实际”做到这一点。 我最终做的就是假装,如果有人有更好的答案,我会乐意接受。

我使用了ScaleFactor的值:

 scaleFactor = ((double)Application.Current.Host.Content.ScaleFactor) / 100.0; 

然后我创建了可写位图:

 screen = new WriteableBitmap((int)(cl.ActualWidth * scaleFactor), (int)(cl.ActualHeight * scaleFactor)); 

并将其放在后台:

 backgroundImage.Stretch = Stretch.Fill; 

看起来这实际上是正确使用图像并将图像的像素映射到屏幕而不是缩放它们。 这有点hackish所以,如果有更好的解决方案,我会很高兴听到它。