Настройка панели задач Windows 7 из WPF – за пределами наложения TaskbarItemInfo
На панели задач Windows 7 на растровый значок 48x48 может быть наложено точечное изображение 16x16. Это часто используется, чтобы показать что-то подобное числу или цветному квадрату, показывающее состояние приложения.
Можно использовать XAML-ресурс, чтобы наложить что-то на букву teh, извлекая наложение из модели ViewModel, если оно сохранено как кисть DrawingBrush в app.XAML или словаре ресурсов.
Подобно следующему примеру из приложения MetroTwit: Это замечательно, но в точечном рисунке 16x16 не слишком много места. Мне хотелось бы динамически управлять всем значком 48x48, чтобы отобразить несколько "элементов" и окружающую круговую диаграмму, визуально символизирующую состояние "элементов", деля их на группы зеленого, желтого и красного цвета. Например так: Для этого я решил вместо наложения привязать фактический значок окна Window к свойству в ViewModel. Icon="{Binding Icon}" ViewModel возвращает ImageSource, созданный в отдельном проекте пользовательского элемента управления WPF, содержащего элемент UserControl, отображаемый в RenderTargetBitmap. Это позволяет мне использовать XAML для создания визуального элемента и ссылаться на этот проект из проекта ViewModel, который необязательно является проектом WPF (если ViewModel находится в библиотеке классов).
Формирователь изображения imageGenerator создает в памяти экземпляр пользовательского элемента управления и изображает его на лету, используя класс PiePiece, производный от класса Shape, для рисования круговой диаграммы из 3 секторов. Демонстрационный код выполняется без программной части за исключением подключения модели представления ViewModel к окну, а также показывает несколько других свойств значка, таких как ProgressState и ProgressValue наложения TaskBarItemInfo для получения хорошего эффекта "загружаемого файла" на панели задач. |