在Win 10手机/手机

时间:2016-11-24 20:50:05

标签: uwp windows-10-mobile live-tile secondary-live-tile

我在Windows 10应用商店(世界时钟)中有一个UWP应用。此应用程序允许用户固定显示每分钟更新文本的实时辅助磁贴(以显示世界各地不同城市的当前时间)。这些实时文本切片创建为"自适应切片"使用如下所示的XML:

tile definition xml

目前,这些实时文本图块具有从应用清单中拉出的纯色背景颜色#000000(黑色)。 最新版本的Windows 10手机有一个设置使用开始屏幕瓷砖透明度;它提供了一个很好的效果,但仅适用于Microsoft实用程序。见下面的屏幕截图。不幸的是,我无法弄清楚如何让我的文本图块的背景透明/半透明。我希望Windows能够调整alpha通道/不透明度/透明度;但是,事实并非如此。另外,我可以在清单中设置的背景图块颜色是RGB而不是ARGB;它不允许指定alpha通道值。有谁知道非Microsoft应用程序是否有可能在实时文本磁贴上具有半透明的磁贴背景?如果是这样,有关如何实现此效果的任何建议(微软半透明背景和我的不透明背景图块如下所示)?

Translucent live tiles screenshot

1 个答案:

答案 0 :(得分:0)

正如Thomas在评论中已经提到的,您可以在Package.appxmanifest中更改切片的背景颜色。在代码BackgroundColor="transparent"标记中为VisualElements

<Applications>
  <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="MyApp.App">
    <uap:VisualElements DisplayName="MyApp" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="MyApp" BackgroundColor="transparent">

如果您希望在自己的应用中拥有它,就像在Microsoft应用中一样,您可以使用以下内容更改代码中BackgroundColor的{​​{1}}:

SecondaryTile

此处更新主要图块有点复杂,因为您需要为图块创建一个新的Xml内容,背景图片仅包含您的颜色,并将其设置为public static async Task ChangeSecondaryTilesBackground(bool transparent) { IReadOnlyList<SecondaryTile> tiles = await SecondaryTile.FindAllAsync(); foreach (SecondaryTile tile in tiles) { if (transparent) tile.VisualElements.BackgroundColor = Windows.UI.Colors.Transparent; else tile.VisualElements.BackgroundColor = Windows.UI.Colors.Green; // Set to your color await tile.UpdateAsync(); } }

请注意,在PC上,用户可以通过右键单击它来停用磁贴,然后将使用Package.appxmanifest中的任何设置。当您的TileNotification内容不正确或无法加载时,也会显示appxmanifest中的默认内容。

另一种方式(例如,如果品牌对您来说很重要)是将BackgroundColor保持在appxmanifest中,如果用户想要只有应用程序图标的透明Live Tile,只需创建一个复制主应用程序图标的SecondaryTile 。这就是我在PitlaneOne中的表现方式。 我这样做的原因是将appxmanifest中的BackgroundColor设置为透明将导致Applications列表和Store列表中的app图标也是透明的。