当前位置:必发365电子游戏 > 操作系统 > 中文原文地址,应用程序栏的透明度
中文原文地址,应用程序栏的透明度
2019-12-19

[原来的小说刊载地址]  Updating my Windows Phone App to Windows Phone 8

跟林永坚先生学习wp7

[华语原来的作品地址] 将自身的 Windows Phone 应用程序更新到 Windows Phone 8

[初稿刊载时间]   2012-12-8 12:53

系统欧洲地仙泡的定义:

现年早些时候,本人花了一天编写了三个小的 Windows Phone 7 应用程序,笔者将它称为Lost Phone Screen。它能为您制造锁屏,并在地点显示你的姓名和关联号码,以便当你遗失它时,用老艺术扶持找到您的手提式有线话机。无需GPS,你只须告知您的小同伴有多少个眇小奖励,然后让她们拨打电话。未来你能够免费下载它,大家没有必要为别的软件付费,除了为恼怒的小鸟支付 99 美分。但笔者不痛楚。;卡塔尔(قطر‎不管怎么说,它那二个适用于 Windows Phone 7 和 Windows Phone 7.5 (Mango)。

必发365电子游戏 1即日自家赢得了三个Windows Phone 8 的HTC Lumia 920,因为有了成千上万新的API和功能供自家能够动用-个中很要紧的某些是也足以以编制程序方式设置手提式有线电话机的锁屏,客户将无需做别的交事务-小编认为是时候来更新它了。

利用程序栏:

本身勉力你查看在6 小时内从概念到代码:推出自家的第三个 Windows Phone 应用程序博文作为提示,应用程序能够做什么以致自己编写Windows Phone 7.x 版本碰着的主题素材。

那边是自己不能不酌量将应用程序更新到Windows Phone 8的来头。特别感激笔者在索爱的对象Justin Angel在 Skype 上和自个儿一齐集思广益,并协理编写异步代码和消除难点。他的关于Windows Phone 8的风行功能博文是特别实惠的,非常是他的小巧的 MultiRes 扶植器类。

采用程序栏的折射率:

履新应用程序

必发365电子游戏 2

率先,很家喻户晓,现存的 Windows Phone 7 应用程序能够在Windows Phone 8上健康运作,而不需求任何改造。它在 Windows Phone 8 上运维就好似在 Windows Phone 7 的同大器晚成。作者想要更新它以此来选拔新操作系统上的新职能。

将品种晋级到 Windows Phone 8

接收程序栏与显示屏方向(通过安装SupportedOrientations为PortraitOrLandscape,其字体和Logo方向会自动更改):

提高是很简单的,小编展开旧的体系,然后它提醒笔者进级。小编双击 WMAppManifest.xml,并保管重申一些大旨设置,像本人的应用程序的图标大小和磁贴,以至确认本身的应用程序将要求像照片访问等作用。

必发365电子游戏 3

自己保管勾选Supported Resolutions,因为自身精通本人稍后需求运用它。

必发365电子游戏 4

 

封存七个分支VS一个至上项目

 

本身多次地那样做。这是三个升任后的操作系统,但 99%的代码将被分享。然则,已经济体改成了重重事物,因而笔者主宰在源代码管理中创立叁个拨出,并非营造一个单个的生成。诚实说,这里有希望对的误的答案,你能够行令你所习贯的自由东西。纵然作者喜爱的话,作者能够使用CSProj 文件,大概只是创建四个莫衷一是的Build Configuration(生成配置)(如 Debug8 和 Debug7等),但自己晓得本人的源代码管理运作得相当好,所以最终自个儿各有叁个phone70 和 phone80分支,我在它们中间切换。更有望的是自家将履新 phone80 分支,然后"以往移植"新职能,今后那运作如常,不过笔者晓得,要是本人想要的话,小编一连能够制作单个生成。

只是,末了本身知道小编各必要三个Windows Phone 7.x和 Windows Phone 8的浮动,但自己能够将它们以平等的称号提交到Store,Store会管理好的。假诺你的Windows Phone 8 选拔三个新的显示器分辨率,你会获得准确的本子,正如您能够在下边包车型大巴显示器快速照相所观望标。小编已经付诸了多个XAP 文件。

必发365电子游戏 5

新的显示屏分辨率

自己在几周前更新了自身的应用程序,但自个儿的首个不利的bug 产生在当Nokia Windows Phone 设备运维在分辨率 1280 x 720,并非 1280 x 768上时。它说:小编的 lockscreens 被裁剪了! Windows Phone 8 其实有二种荧屏分辨率,正如Justin所建议的:

这几个屏幕分辨率是: WVGA (480 × 800 像素),也用在 Windows Phone 7 中;WXGA (768 x 1280 像素),基本上是WVGA的高清版本;和 720 P (720 x 1280 像素),它利用的是与WVGA 和 WXGA差别的长度宽度比。请小心那几个分歧的分辨率,请确认保障在排版显示屏时利用绝没有错<Grid/>定位,并为差别的分辨率使用区别的媒体资金财产。

三种显示屏分辨率是次要的,更加有趣的是 720 p 是不同的长度宽度比!本来本人在自家的代码中做了不菲尽管,不是显示屏分辨率。笔者将15:9假诺为 800 x 480和 1280 x 768的长度宽度比,但 16:9 是 1280 x 720 !

本身最先的反馈是,不佳,今后本身只得真正思量

事实注解它事实上更简单。在自身的具有应用程序的页面中,有一个页面作者能够除去当中的XAML 代码,以致硬编码边距和行定义。笔者实在正在具体化,不让系统本身以最棒情势开展布局。

自己删除了具有小编硬编码的边距,并使用 "*"RowDefinition来更换了自家的网格,"那象征"别的的长空"是像那样的:

<Grid x:Name="LayoutRoot" Background="Transparent">

    <Grid.RowDefinitions>

        <RowDefinition Height="Auto"/>

        <RowDefinition Height="*"/>

    </Grid.RowDefinitions>

...

</Grid>

第七个RowDefinition 填充了内容的高低,第一头是侵夺了其他部分。那让自个儿的页面在种种分辨率的显示器上看起来都很正确,并超级轻巧测验,因为本人得以只是改动模拟器下拉列表来抉择差异的分辨率:

必发365电子游戏 6

然而,在这里些新的分辨率中,作者改换了本身原先单后生可畏的 SplashScreenImage.jpg来归纳每多个用于命名称叫SplashScreenImage.Screen-720p.jpgSplashScreenImage.Screen WVGA.jpg 和 SplashScreenImage.Screen-WXGA.jpg的那三个分辨率。你会意识你足足八分之四的年华在做 (无论是苹果、 Windows 依然 Android)移动应用程序获取 PNG和图稿文件修正)。

必发365电子游戏 7

自身一定要(选拔卡塔尔在App上的三个地点硬编码(笔者得以可疑Application.Current.Host.Content.ScaleFactor.Application.Current.Host.Content.ActualHeight 和 Application.Current.Host.Content.ActualWidth 是道理当然是这样的的)。作者有个很极度的自定义裁剪图像控件,须求特别管理的 720p 案例,可能鉴于自家在XAML上手艺的远远不够。它报告笔者唯有最时尚的边缘景况必要这么做,平日这是像素完美锁定显示屏的编慕与著述中,所以你的汗恐怕一点都不会白流。

新的锁屏API

最终,作者的应用程序能够修正锁屏,而不需求顾客手动干预。那是自个儿的显要讲求,我们都是为是本身的错,该功效并不设有。其实它已经被增加到Windows Phone 第88中学。

若果您的应用程序想要改善锁屏,它必得得询问叁遍,并收获特许。它必须提供"当前锁屏供应商"。固然上述条件相符,它就能够呈请访问权限,然后设置锁屏。

if (!LockScreenManager.IsProvidedByCurrentApplication)

{

    LockScreenRequestResult result = await LockScreenManager.RequestAccessAsync();

    if (result == LockScreenRequestResult.Granted)

    {

        SetAsWallpaper(filename);

    }

}

else

{

    SetAsWallpaper(filename);

}

SetAsWallpaper 只是二个有关LockScreen.SetImageUri(卡塔尔(قطر‎ 的助理。

private void SetAsWallpaper(string filename)

{

    string realPath = "ms-appdata:///local/" + filename;

    Debug.WriteLine(realPath);

    //Debug.WriteLine(ApplicationData.Current.LocalFolder.Path);

     LockScreen.SetImageUri(new Uri(realPath, UriKind.Absolute));

}

那便是它。可爱而精炼。可是。

选拔异步 API时一个特别首要的唤起

在 Windows 8 和 Windows Phone 8 中(由于 Windows 8 magic dust是位于Windows Phone 8卡塔尔 ,一切都以关于异步和非堵塞API。从前我只是保存了壁纸,除了等候你为难。以后抱有的平底 API都以异步的(非堵塞),作为开采人士,大家有await /async 关键字来使事情变得轻便,对啊?

本来,作者的第四个纯情的 bug在当大家数次点保存按键时现身了。因为一切都以无堵塞的,那将闭馆多数保存哀告,然后最后它们将冲击文件系统,然后现身"访谈被驳倒"。

本身想要爱慕访谈这种分享的能源,但本人不想锁定UI。Michael L Perry有三个对此很好的解决方案,只怕会营造到他的Awaitable Critical Section帮助器的Windows Phone SDK 中(最少它是存在的,除非大家漏掉它?)。此协理器让大家在行使深谙的using{} 块的处境下,在哪个地方使用异步和等待,哪一天使用 lock(卡塔尔 {} 块。

正如迈克尔所提议的,你不可能如此做,因为您无法在一个锁中等待。

lock (this)

{

    FileHandle file = await FileHandle.OpenAsync();

    await file.WriteAsync(value);

    file.Close();

}

但有了此扶植器,你能够实施此操作:

using (var section = await _criticalSection.EnterAsync())

{

    FileHandle file = await FileHandle.OpenAsync();

    await file.WriteAsync(value);

    file.Close();

}

中文原文地址,应用程序栏的透明度。本身就是那样做的。

分析

当您做届时,请确认保证您运行Windows Phone Application Analysis工具查看你的应用程序的情事。它使用太多内存了啊?使用完电瓶了啊?它是在风流洒脱秒内开发银行的呢?

必发365电子游戏 8

那是令人神奇的东西。令你不用为你的App费悉心思,以至令你不要配置你的App交给你的应用程序和交由多个版本时需求记住的新东西

笔者在 Windows Phone 7 版本中改过了有的 bug、校订了该 XAP 版本号,作为二个小的进级提交了它。具有Windows Phone 7.X 版的人将会拿到升迁来更新他们的应用程序。此版本中,正如您所铭记的,不会自动更新锁屏,因为它不能够。

步向Phone Marketplace,并从仪表板中式点心击Update App。在自己的更新从前,Marketplace显示的是 7.1版本的应用程序:

必发365电子游戏 9

点击Update selected,上传作者刚制造的面向XAP 的新Windows Phone 7.1。上传后自个儿,改革下拉列表,并上传 Windows Phone 8 XAP。笔者保障要上传宣布三个Release XAP 和"AnyCPU"版本那三种情景。

必发365电子游戏 10

本身一向保留 Windows Phone 8 的多少个版本好让自己要好了然。那对于本身来讲是有含义的,它扶植本身难忘什么是"最新"的,尽管它只留意新版本会比原先的本子越来越高。

请必得检查你的全部文件、表达和Logo,以作保它们是不利的。

花时间编码vs花时间编写 PNG

天堂评释,与编码相比较,作者发誓本人花了越来越多的时刻嘲讽截图和PNG。

作业是如此的:手提式有线电话机应用程序开荒完全部都以关于显示屏截图和Logo的。

有这么多的分辨率、资金财产和差异的方案供您的应用程序显示,所以值得在 PhotoShop 恐怕Paint.NET上花销一些岁月。其实,笔者全数的做事都是在 Paint.NET中成功的。

因为有三种分辨率,您需求只顾你须求三套显示屏截图!幸运的是有内置到Emulator中的截图工具, Windows Phone 还帮忙(最后)通过按电源 + Windows 键在器械中截屏。

从marketplace中提交大概不那么显然,但您内需单击 WXGA 和 720 p ,然后为各类上传单独截图!不然你的潜在客商不探望到你的应用程序在其配备上的情形。很干燥,但第风度翩翩。

必发365电子游戏 11

说实话,那成了花费管理活。以 Jpg 和 Png 文件夹填充而终止,仅保留了有个别靠边的文件命名约定。

必发365电子游戏 12

您最终会有至少24 张截图(3 x 8)加上多个起来荧屏,多少个Logo尺寸,你还有恐怕会想要在万籁俱寂和透亮的大旨上测试。

结论

终极,它将为你的客商无缝地对接。具有Windows Phone 8 的人将从WP8 XAP 中拿走更新, Windows Phone 7.x的人将从WP7-built的 XAP 中拿到。那整件事花了约 3个钟头,大多数时辰都在拍卖荧屏截图。