App.Current.Host在通用Windows Phone 8.1应用程序中去了哪里?

时间:2014-06-03 10:58:22

标签: windows-phone-8 win-universal-app

尝试在Windows Phone Universal App中处理多分辨率图像时,我遇到了来自Microsoft的this article

不幸的是,它仅适用于Windows Phone 8和Windows Phone Silverlight 8.1。 使用代码示例时,他们提到:

private static bool IsWvga
{
    get
    {
        return App.Current.Host.Content.ScaleFactor == 100;
    }
}

在这种情况下,App.Current没有Host属性 - Host可能是提到的here的SilverlightHost属性。

是否有人在8.1 Universal App中找到了相同的方法?

2 个答案:

答案 0 :(得分:3)

如果要处理图像缩放,则由Windows Phone 8.1 Universal Apps中的文件夹名称处理。方法如下:

Image scaling in windows phone 8.1

要在XAML中使用这些图像,您只需提供文件名,操作系统将完成其余工作。

 <Image Grid.Row="1" Grid.Column="0" Source="wpimages/resolution.jpg" VerticalAlignment="Top" Width="100"/>

另一种方法是简单地以不同比例存储多个图像副本,并以与文件夹resolution.scale-100.jpgresolution.scale-240.jpg相同的方式命名它们。您仍然可以在XAML中将文件命名为相同。

我将在以后分享一篇关于此的文章。

答案 1 :(得分:1)

有关通用Windows应用程序的快速更新(UWP,适用于Windows 10的应用程序)。

Microsoft扩展了UWP中的自动扩展支持,现在支持更多不同的扩展(可能最完整的列表是here - 大约16种不同,从100%到500%)。

根据文章Porting Windows Runtime 8.x XAML and UI to UWP,您只需要使用100/200/400:

  

在大多数情况下,在所有中间规模因素下,以100% - 规模,200% - 规模和400% - 规模(按该优先级顺序)提供资产将为您提供出色的结果。

此外,UWP支持不同的限定符(语言,比例等)。 请阅读How to name resources using qualifiers (XAML)

在个人方面,我更喜欢将图像保存在一个文件夹中,只是为了让生活更轻松。很容易检查您是否拥有所有分辨率,管理图像(复制/删除/等)很容易。文件夹是Android的方式,文件名 - 对于iOS,Windows 10支持两种方式,它很棒!