窗口运行时 - Winrt 磁贴更新 C# 时出错

本文关键字:更新 出错 运行时 Winrt 窗口 | 更新日期: 2023-09-27 17:56:07

我正在尝试安排几条消息在磁贴上进行更新,但第二种方法的第 4 行tileTextAttributes[0].InnerText = Message;不断抛出异常,指出参数不正确。你能帮我解决问题吗?

private void SetupTiles()
{
    try
    {
        DateTimeOffset time = DateTime.Now;
        for (int i = 0; i < messages.Count; i++)
        {
            Windows.UI.Notifications.ScheduledTileNotification stf = new ScheduledTileNotification(GetTile(messages[i]), time);
            time.Add(new TimeSpan(0, 0, 0, 30, 0));
            TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule(stf);
        }
    }
    catch (Exception ex)
    {
        new Windows.UI.Popups.MessageDialog(ex.Message).ShowAsync();
    }
}
XmlDocument  GetTile(string Message)
{
    XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText05);
   string t = tileXml.ToString();
    XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
    tileTextAttributes[0].InnerText = Message;
    XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText04);
    XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text");
    squareTileTextAttributes[0].AppendChild(squareTileXml.CreateTextNode(Message));
    IXmlNode node = tileXml.ImportNode(squareTileXml.GetElementsByTagName("binding").Item(0), true);
    tileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);
    return tileXml;
}

编辑

System.ArgumentException:参数不正确。


Windows.UI.Notifications.ScheduledTileNotification..ctor(XmlDocument 内容,日期时间偏移交货时间)

TestProj.MainPage.SetupTiles() in c:''Users''ddds''Documents''Visual Studio 2012''Projects''TestProj''TestProj''MainPage.xaml.cs:line 398

窗口运行时 - Winrt 磁贴更新 C# 时出错

XML 对我来说似乎很好,但您正在将通知安排在刚刚过去的时刻。 在构造函数之前添加时间偏移量。

编辑看起来它比这更微妙一些,我想可能是因为各种时间函数相对于 UTC 的工作方式。 例如

DateTimeOffset time = DateTime.Now.AddMinutes(3);

可以,但不是:

DateTimeOffset time = DateTime.Now;
time = time.Add(new TimeSpan(0, 0, 3, 0, 0));

我在关于计划通知的博客文章中有一些信息可能会有所帮助。