Uwp 根据用户固定的互动程序大小更新活动互动程序

Uwp 根据用户固定的互动程序大小更新活动互动程序,uwp,windows-10,windows-10-mobile,live-tile,Uwp,Windows 10,Windows 10 Mobile,Live Tile,在我的UWP应用程序中,我面临一个使用活动瓷砖的问题。Microsoft为不同的磁贴大小提供了不同的模板()来设置内容,但这也取决于设备如何显示内容 例如,宽磁贴在移动设备上显示的字符数比在台式计算机上显示的字符数多,但我希望使用磁贴区域的大部分来显示信息。假设用户在桌面计算机上安装了我的应用程序,并将大方形磁贴固定在开始菜单上。如何检测磁贴大小以加载适当的模板?基本上,我只想根据用户固定的磁贴使用不同的模板(然后我想根据使用的设备处理内容填充,但我已经介绍过了) 目前,我只是使用一个宽模板,如

在我的UWP应用程序中,我面临一个使用活动瓷砖的问题。Microsoft为不同的磁贴大小提供了不同的模板()来设置内容,但这也取决于设备如何显示内容

例如,宽磁贴在移动设备上显示的字符数比在台式计算机上显示的字符数多,但我希望使用磁贴区域的大部分来显示信息。假设用户在桌面计算机上安装了我的应用程序,并将大方形磁贴固定在开始菜单上。如何检测磁贴大小以加载适当的模板?基本上,我只想根据用户固定的磁贴使用不同的模板(然后我想根据使用的设备处理内容填充,但我已经介绍过了)

目前,我只是使用一个宽模板,如果用户锁定了除宽模板以外的任何其他尺寸,则该模板不会执行任何操作。如果用户固定宽平铺,则它可以工作。但我正在努力为这个问题找到一个通用的解决方案。我正在使用ScheduledTileNotifications,因为我的应用程序只使用本地数据作为磁贴内容

这是我用给定模板更新互动程序的代码:

publicstaticvoidupdateprimaryTile(xmldocumenttiletemplate)
{
var dt=DateTime.Now.AddSeconds(5);
dt=DateTime.SpecifyKind(dt,DateTimeKind.Unspecified);
var not=新的ScheduledFileNotification(tileTemplate,新的DateTimeOffset(dt,TimeZoneInfo.Local.BaseUtcOffset));
var tu=TileUpdateManager.createTileUpdateForApplication();
tu.EnableNotificationQueue(true);
tu.Clear();
tu.AddToSchedule(非);
}

您应该在tileTemplate中包含所有的磁贴大小,而不仅仅是宽磁贴。这样,无论用户选择什么,都将有一个适当的磁贴显示

仅显示当前选择的磁贴模板是不够的,因为用户可以在您的通知触发后更改它

如果您查看adaptive tile文档,它会说:

对于单个磁贴通知XML负载,请为您希望支持的每个磁贴大小提供元素,如本例所示:


小的
中等
宽阔的
大的
这同样适用于Windows 8.1模板,如中所示

用户可以随时在“开始”屏幕上调整互动程序的大小,在发送通知时,您无法知道互动程序处于哪个状态(小、中、宽或大)


我不知道可以在一个模板中添加多个尺寸,我一定跳过了文档中的这一部分。我会试试看,尽快记下这个答案。谢谢