我有一个UWP应用程序在Windows 10应用商店(世界时钟)。这个应用程序可以让用户将显示每分钟更新文本的活次瓷砖(显示世界各地不同城市的当前时间)。使用下面所示的XML将这些活动文本块创建为“自适应tiles”:

目前,这些活文字瓷砖有一个坚实的背景颜色#000000 (黑色)从应用程序清单。Windows10forPhone的最新版本具有设置使用开始屏幕的透明度;它提供了很好的效果,但只适用于Microsoft实用程序。见下面的屏幕截图。不幸的是,我不知道如何允许我的文本块的背景透明/半透明。我希望Windows能够调整alpha通道/不透明度/透明度;但是,它没有。另外,我可以在清单中设置的背景色是RGB而不是ARGB;它不允许指定alpha通道值。有没有人知道非微软的应用程序是否有可能在活的文本块上有半透明的瓷砖背景?如果是的话,是否有关于如何实现此效果的建议(Microsoft半透明背景和我的不透明背景瓷砖如下所示)?

发布于 2016-11-24 23:36:45
正如托马斯在注释中已经提到的,您可以在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">如果您想让它在您的应用程序中像在微软应用程序中一样,您可以用这样的代码更改您的BackgroundColor的SecondaryTile:
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();
}
}在这里更新主块有点复杂,因为您需要为只包含颜色的背景图像创建一个新的Xml内容,并使用tileUpdater.Update(new TileNotification(xmlContent));设置它
请注意,在PC上,用户可以通过右键单击就可以禁用瓷砖,然后Package.appxmanifest中的任何设置都将被使用。当您的TileNotification内容不正确或无法加载时,也会显示appx清单中的默认内容。
另一方面(例如,如果品牌对您来说很重要)是将BackgroundColor保存在app中,如果用户希望拥有一个只带有应用图标的透明Live,只需创建一个复制主应用程序图标的SecondaryTile。例如,这就是我在PitlaneOne中所做的工作。我这样做的原因是,将appx清单中的BackgroundColor设置为透明将导致应用程序列表和商店列表中的应用图标也是透明的。
https://stackoverflow.com/questions/40794315
复制相似问题