Windows runtime 如何在运行时更改活动互动程序的背景色?

Windows runtime 如何在运行时更改活动互动程序的背景色?,windows-runtime,winrt-xaml,Windows Runtime,Winrt Xaml,我正在尝试在运行时更改Windows 8应用程序上实时互动程序的背景色。这可能吗?有人有代码片段吗?背景颜色在应用程序清单中指定。因此,这似乎是不可能的 通过在运行时发送带有适当背景图像(颜色)的自定义时间,可以模拟相同的情况。这是一种奇怪的方法,但我的小脑袋只能想到这种方法。对于主/默认磁贴,您可以按照@Tilak所说的做:创建磁贴图像通知并使用TileUpdateManager.createTileUpdateForApplication().Update来更新它 对于辅助磁贴,请执行以下操

我正在尝试在运行时更改Windows 8应用程序上实时互动程序的背景色。这可能吗?有人有代码片段吗?

背景颜色在应用程序清单中指定。因此,这似乎是不可能的


通过在运行时发送带有适当背景图像(颜色)的自定义时间,可以模拟相同的情况。这是一种奇怪的方法,但我的小脑袋只能想到这种方法。

对于主/默认磁贴,您可以按照@Tilak所说的做:创建磁贴图像通知并使用
TileUpdateManager.createTileUpdateForApplication().Update
来更新它

对于辅助磁贴,请执行以下操作:

  • 在应用程序清单中,将背景颜色设置为“透明”
  • 在应用程序清单中,使用具有透明背景的图像

  • 现在,您可以在运行时执行此操作:

  • var tile=newsecondarytile(“您的tile\u ID”);
    tile.VisualElements.BackgroundColor=Colors.Red;
    等待tile.UpdateAsync()

    问题是:背景没有立即更新,我也没有 我知道为什么。但您可以在注销/登录后看到效果,例如 例子。(使用windows 10进行测试)

    所以这个答案是不完整的,但希望能给像我这样从谷歌来到这里的人提供一些见解


    假设您已经解决了这个问题,但我将在这里发布此信息,如果有人通过此线程访问,可能会很有用

    对于初级瓷砖,Bruno Lemos的答案是正确的

    对于Seconday Tile我将使用TileUpdateManager。创建TileUpdateForSecondArytile(Tile2\u ID)

    使用TileNotifications和TileUpdaterManager对我即时有效

    使用平铺模板,您必须修改模板中的一些XML代码,但也可以下载NotificationsExtensionsNuGet软件包,并按以下方式执行:

    var tile2 = TileContentFactory.CreateTileSquare150x150PeekImageAndText01();
    tile2.Branding = TileBranding.Name;
    tile2.Image.Src = "ms-appx:///assets/Logo-transparent.png"; //Useful to have the same logo image with transparent background and other colors
    tile2.TextHeading.Text = "Heading";
    tile2.TextBody1.Text = "String1";
    tile2.TextBody2.Text = "String2";
    tile2.TextBody3.Text = "String3";
    var doc = new XmlDocument();
    doc.LoadXml(tile2.ToString());
    var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(tile2_id);
    updater.EnableNotificationQueueForSquare150x150(true); //enables up to 5 different tile *animations* for 150 square icon, can be enabled for other sizes too
    updater.Update(new TileNotification(doc) { Tag = "1" });
    
    上面的代码考虑了先前创建的SecondaryTile

    您可以在此处看到图标的不同模板:

    您只需更改行TileContentFactory.CreateNAMEOFTEMPLATE并填充不同的字符串/图像字段

    有关在互动程序中启用多个动画的EnableNotificationQueue的信息,可在此处找到: