Xaml 可以告诉Windows 8.1应用程序不要放大特定元素吗?

Xaml 可以告诉Windows 8.1应用程序不要放大特定元素吗?,xaml,windows-store-apps,windows-8.1,image-scaling,Xaml,Windows Store Apps,Windows 8.1,Image Scaling,我正在引用应用程序中图像元素的源属性的外部图像URL 我有3个版本的图像在100,140和180的比例,例如 myimage.scale-100.jpg myimage.scale-140.jpg myimage.scale-180.jpg 如果图像存在于应用程序中,您通常会像下面这样放置源,Windows会根据设备的分辨率比例确定要加载的图像: ms-appx:///Assets/Images/myimage.jpg 但是,由于我的3幅图像在外部直播,我必须计算分辨率比例,然后建立正确的源

我正在引用应用程序中图像元素的源属性的外部图像URL

我有3个版本的图像在100,140和180的比例,例如

myimage.scale-100.jpg
myimage.scale-140.jpg
myimage.scale-180.jpg
如果图像存在于应用程序中,您通常会像下面这样放置源,Windows会根据设备的分辨率比例确定要加载的图像:

ms-appx:///Assets/Images/myimage.jpg
但是,由于我的3幅图像在外部直播,我必须计算分辨率比例,然后建立正确的源字符串,以便加载正确的图像,例如:

http://www.mywebsite.com/myimage.scale-180.jpg
这是可行的,但是,windows正在拍摄我的图像,例如180缩放一个myimage.scale-180.jpg,然后再将其放大180%,它不知道我已经以正确的180%缩放加载了图像,并且它不需要放大

有没有办法告诉它不要放大特定的图像元素?

更新(添加代码): xaml图像元素:

<Image Source="{Binding Image, Converter={StaticResource ImageToExternalImagePathConverter}}" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="None" />
更新(新增参考): 要进一步解释我目前正在做什么,请参阅此链接:

根据运行时的比例百分比手动加载图像 应用程序正在运行时使用代码加载图像,例如,如果您使用 直接使用DirectX,而不是XAML或HTML来创建UI,请使用 DisplayProperties.ResolutionScale属性以确定比例和 根据比例百分比手动加载图像

这就是我正在做的,但问题是Windows正在将UI按其应有的比例放大到140%或180%,这包括我手动加载的图像。因此,如果我手动加载一个大小已经达到140%的图像,它会被Windows放大,而且它的物理尺寸确实会变大。如果图像存在于应用程序包中,则此问题将不存在,因为Windows可以识别文件名标识符,并且不会将其放大(请参见下文)

对应用程序包中的位图图像使用资源加载 存储在应用程序包中的图像,为每个应用程序包提供单独的图像 缩放因子(100%、140%和180%),并使用 下面描述的“比例”命名约定。Windows加载到右侧 自动显示当前比例的图像


对于应用程序包中的图像,但对于应用程序外部的图像,以及手动加载的图像,如何从Windows复制相同的行为?从逻辑上讲,在我加载图像时(代码),我想对Windows说,此图像已正确缩放,不要按分辨率因子进行放大。

尝试将
大小调整夹点
属性设置为false

如果使用自动调整大小的图像,它们将根据其
拉伸
属性进行缩放,因此请确保设置了该属性。否则,它不应该使屏幕上的图像“物理”变大。它通常只会识别它们何时被绘制得更大(例如通过易于访问),并使用更高分辨率的图像。如果您愿意添加其他图像,可以添加
myimage.noscale.jpg
,然后直接引用它。@NateDiamond您能详细说明为什么以及如何解决我的问题吗?为什么不获得屏幕分辨率并根据分辨率放置所需的图像。@MuhammadUmar我这样做。但是Windows进一步扩展了它——它们是外部托管的图像,不存在于应用程序中。xaml中的大小控制是什么?你能详细介绍一下吗?有msdn的链接吗?你认为这会怎样?
public object Convert(object value, Type targetType, object parameter, string language)
        {
            ResolutionScale resolutionScale = Windows.Graphics.Display.DisplayInformation.GetForCurrentView().ResolutionScale;
            string ImageScale = ".scale-100";
            switch (resolutionScale)
            {
                case ResolutionScale.Scale140Percent:
                    ImageScale = ".scale-140";
                    break;
                case ResolutionScale.Scale180Percent:
                    ImageScale = ".scale-180";
                    break;
            }

            //builds up the correct string e.g. http://www.mywebsite.com/myimage.scale-180.jpg
            string externalPath = "http://www.mywebsite.com/" + (string)value + ImageScale + ".jpg";

            return externalPath;
        }