正如 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
您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 内容不正确或加载失败时,也会显示 appxmanifest 中的默认内容。
另一种方法(例如,如果品牌对您很重要)是将 BackgroundColor 保留在 appxmanifest 中,如果用户想要一个仅带有应用程序图标的透明动态磁贴,只需创建一个复制主应用程序图标的 SecondaryTile。例如,我在 PitlaneOne 中就是这样做的。我这样做的原因是,将 appxmanifest 中的 BackgroundColor 设置为透明会导致应用程序列表和商店列表中的应用程序图标也是透明的。