При выборе события из Журнала событий я решил добавлять на иконку приложения в панели задач дополнительный значок с иконкой уровня выбранного события. Таким образом, при выборе события уровня Error, на иконку приложения добавлялось изображение: , свои значки были и для остальных событий Information, Warning и Critical.
Изображение выбиралось динамически при вызове конструктора окна:
if(String.Compare (er.LevelDisplayName, "Information", true) == 0)
{resou
taskBarItemInfoOverlay.Overlay = ConvertToImageSource(SystemIcons.Information);
}
else if (String.Compare(er.LevelDisplayName, "Warning", true) == 0)
{
taskBarItemInfoOverlay.Overlay = ConvertToImageSource(SystemIcons.Warning);
}
else if (String.Compare(er.LevelDisplayName, "Critical", true) == 0)
{
taskBarItemInfoOverlay.Overlay = ConvertToImageSource(SystemIcons.Error);
}
Из кода видно, что в качестве значков я использовал стандартные системные значки, однако в журнале событий для индикации события уровня Error используется другой значок. Его я не смог найти в классе SystemIcons, там иконка Error была такая же, как в Журнале системы иконка события уровня Critical!
Поэтому пришлось добавлять свою иконку.
1. Иконка должна была быть изображением в формате PNG, с размерами 16х16.
2. Добавляем это изображение в качестве ресурса для нашего проекта, для этого открываем свойства проекта: Menu -> Project -> Properties… -> Resources -> Add Resource -> Add Existing File…
3. Переходим в дерево проекта, в пункте Resources выбираем это изображение, на нем нажимаем правую кнопку мыши и выбираем Properties
4. В Свойствах выбираем Build action и меняем его на Resource.
5. Теперь этот ресурс нужно объявить в XAML-коде:
<Window.Resources>
<!-- Каждое изображение должно быть объявлено в ресурсе
DrawingImage, которое активируется с помощью идентификатора x:Key-->
<DrawingImage x:Key="ExclamationImage">
<!-- Изображение объявляется внутри
свойства DrawingImage.Drawing -->
<DrawingImage.Drawing>
<!-- Изображение задается с помощью элемента
ImageDrawing. Свойство ImageSource
указывает на путь к ресурсу с изображениесм
Rect указывает на размеры изображения-->
<ImageDrawing Rect="0,0,16,16" ImageSource="Resources/exclamation_red.png" />
</DrawingImage.Drawing>
</DrawingImage>
</Window.Resources>
<!-- Получаем ссылку на Панель задач -->
<Window.TaskbarItemInfo>
<TaskbarItemInfo x:Name="taskBarItemInfoOverlay" />
</Window.TaskbarItemInfo>
Теперь в коде можно добавить это изображение на значок в Панели задач:
else if (String.Compare(er.LevelDisplayName, "Error", true) == 0)
{
taskBarItemInfoOverlay.Overlay = (DrawingImage)this.FindResource("ExclamationImage");
}
Результат:
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024