Можем ли мы изменить значок приложения во время выполнения в uwp? - PullRequest
0 голосов
/ 04 августа 2020

Можно ли изменить значок приложения во время выполнения, например, мне нужно показать восклицательный знак, если нет подключения к сети

1 Ответ

0 голосов
/ 05 августа 2020

Как сказал Рэймонд Чен, вы можете использовать уведомление о значке при отсутствии сетевого подключения. Значок «внимание» отображается как восклицательный знак, вы можете использовать его как значок. Например:

private void updateBadgeGlyph()
{
    string badgeGlyphValue = "attention";

    // Get the blank badge XML payload for a badge glyph
    XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph);

    // Set the value of the badge in the XML to our glyph value
    Windows.Data.Xml.Dom.XmlElement badgeElement = badgeXml.SelectSingleNode("/badge") as Windows.Data.Xml.Dom.XmlElement;
    badgeElement.SetAttribute("value", badgeGlyphValue);

    // Create the badge notification
    BadgeNotification badge = new BadgeNotification(badgeXml);

    // Create the badge updater for the application
    BadgeUpdater badgeUpdater = BadgeUpdateManager.CreateBadgeUpdaterForApplication();

    // And update the badge
    badgeUpdater.Update(badge);
}

Обновление:

при отсутствии сетевого подключения

Существует класс NetworkHelper для отслеживания изменений в сетевом подключении, вы можете подписаться на событие NetworkChanged и оценивать IsInternetAvailable. Когда сеть недоступна, покажите значок.

NetworkHelper.Instance.NetworkChanged += Instance_NetworkChanged;

private async void Instance_NetworkChanged(object sender, EventArgs e)
{
    if (NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable)
    {
        await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            //clear badge
        });
    }
   else
   {
       await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
       {
           updateBadgeGlyph();
       });
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...