如何在运行时更改实时图块的背景颜色?

时间:2012-06-29 02:28:00

标签: windows-runtime winrt-xaml

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

3 个答案:

答案 0 :(得分:1)

背景颜色在app manifest中指定。因此似乎不可能。

可以通过在运行时使用适当的背景图像(对于颜色)发送自定义时间来模拟相同的效果。这是一种古怪的方式,但我的小脑袋只能想到这种方法。

答案 1 :(得分:0)

对于主要/默认平铺,您可以执行@Tilak所说的内容:创建平铺图像通知并使用TileUpdateManager.CreateTileUpdaterForApplication().Update进行更新。

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

  1. 在应用清单中,将背景颜色设置为“透明”
  2. 在应用清单中,使用透明背景的图片

  3. 现在您可以在运行时执行此操作:

  4. var tile = new SecondaryTile("YOUR_TILE_ID"); tile.VisualElements.BackgroundColor = Colors.Red; await tile.UpdateAsync();

      

    问题是:后台没有立即更新,我没有   知道为什么。但是,您可以在退出/登录后查看效果   例。 (使用Windows 10测试)

    所以这个答案是不完整的,但希望可以给像谷歌一样来谷歌的人提供见解。

    @brunolemos

答案 2 :(得分:0)

假设您已经修复了问题,但我会在此处发布此信息,如果有人来到这个帖子,可能会有用。

对于Primary Tile,Bruno Lemos的回答是正确的。

对于Seconday Tiles 我会使用TileUpdateManager。 CreateTileUpdaterForSecondaryTile (Tile2_ID)。

使用TileNotifications和TileUpdaterManager可以立即使用。

使用Tile模板,您必须从模板中修改一些XML代码,但您也可以下载 NotificationsExtensions NuGet包,并按照以下方式执行:

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。

您可以在此处查看图标的不同模板:https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.ui.notifications.tiletemplatetype.aspx

您只需更改 TileContentFactory.CreateNAMEOFTEMPLATE 一行,并填写不同的字符串/图片字段。

有关 EnableNotificationQueue 的信息,可以在此处找到图块中包含1个以上的动画:https://msdn.microsoft.com/en-us/library/windows/apps/hh781199.aspx