Xaml Windows Phone 8.1应用程序始终缩放图像

Xaml Windows Phone 8.1应用程序始终缩放图像,xaml,windows-phone,windows-phone-8.1,win-universal-app,Xaml,Windows Phone,Windows Phone 8.1,Win Universal App,我已将我的一个Windows应用商店应用程序转换为通用应用程序,并向其中添加了一个Windows Phone项目 渲染图形(使用ImageBrush渲染图像和矩形)时,图形始终会缩放,即使我将其设置为“不缩放”,但这并不是预期的工作方式 例如: 我有一张名为test.scale-100.png的图像,它是27*27像素。 该图像与名为test.scale-140.png的32*32像素大小的图像和名为test.scale-240.png的59*59像素大小的图像相同 我以以下方式在默认布局中使用

我已将我的一个Windows应用商店应用程序转换为通用应用程序,并向其中添加了一个Windows Phone项目

渲染图形(使用ImageBrush渲染图像和矩形)时,图形始终会缩放,即使我将其设置为“不缩放”,但这并不是预期的工作方式

例如: 我有一张名为test.scale-100.png的图像,它是27*27像素。 该图像与名为test.scale-140.png的32*32像素大小的图像和名为test.scale-240.png的59*59像素大小的图像相同

我以以下方式在默认布局中使用此图像:

<Image x:Name="imgTest" Source="/Assets/test.png" Stretch="None"/>

当我使用Windows Phone 8.1 WVGA 4英寸模拟器启动我的应用程序时,32*32的图像显示的边界正确,但实际的图像是缩放的(我可以看到这很简单,因为内容变得模糊)

使用Windows Phone 8.1 1080p 6英寸仿真器启动应用程序时也会发生同样的情况;图像为59*59像素,但图像有点模糊

如何强制不执行缩放


提前感谢您的帮助

我不确定。我现在也在寻找解决办法。但我发现Windows Phone 8.1不支持缩放。只有Windows应用商店应用程序可以进行缩放。看看下面的链接

因此,缩放图像的方法是使用“高度/宽度”属性强制图像大小,或者可以使用BitmapImage及其属性DecodePixelHeight/DecodePixelWidth以及高度/宽度属性对图像进行解码


希望有帮助;)

我也有同样的问题,我认为这是一个操作系统错误:

测试1

test.scale-100.png + 
test.scale-140.png +
test.scale-240.png 
= Blurry result
测试2

test.scale-240.png 
= Blurry result, again
测试3

test.scale-240.png renamed to test.png
= Sharp result!
问题只发生在某些资产上,而不是所有资产上。在我的例子中,只有一些数据模板。我认为在某些情况下,系统会错误地缩放图像,导致可怕的模糊结果。如果只留下“scale-240”图像,则图像模糊。如果删除“scale-240”将其重命名,它将变得尖锐

总之,将图像命名为test.png并停止

正如MSDN所说:

不要使用大小不是5px倍数的图像。当缩放到140%、180%和240%时,不是5px倍数的单元可能会出现像素偏移


您的Width=“53”Height=“53”可能是不正确行为的问题

您没有为图像指定明确的像素大小,为什么不进行缩放?在任何情况下,您都应该使用更高分辨率的图像,并让操作系统适当缩小。感谢您的回复,但即使我指定了如下精确宽度:在WVGA中运行时,图像的缩放不正确。实际图像缩放为55*55像素,但如果将其放置在标签中,并按以下方式设置宽度和高度:我可以看到边框缩放为精确的64*64像素,但内部相同尺寸的图像仍缩放为55*55像素。我希望使用原始图像并避免操作系统缩放。您无需明确指定像素大小,WVGA和1080p图像有点模糊的唯一原因是因为WVGA缩放120%,所以它将检查test.scale-120.png和1080p缩放220%,所以操作系统将检查test.scale-220.png,但您没有传递此图像,所以它将获取最近的缩放图像,例如,对于WVGA,它将获取test.scale-100.png,对于1080p,它将获取test.scale-220.pnggrab test.scale-240.png。只需添加适当的缩放图像,就可以了。谢谢回复。这几乎对我有用。我发现一件奇怪的事情是,在100%宽度的大小上加上几位小数,例如35.555556,结果要好得多(几乎没有模糊),而不是使用整数(35)。奇怪,但似乎解决了问题。问题是如何禁用缩放,而不是如何“手动”执行缩放