Сегодня я хочу написать немного о библиотеке Vista Bridge, которая «восполняет» некоторую функциональность, которая отсутствует в составе .NET Framework 3.0.
Небольшое введение.
С выпуском .NET FW 3.0, многие разработчики могли заметить, что там не реализованы некоторые вещи, которые были введены в Windows Vista, хотя сам фреймворк был выпушен именно с ее выходом. Это:
Vista style Task – диалоги в стиле Vista.
File Dialogs – диалоги работы с файлами, которые появились в Windows Vista.
Application Recovery and Restart – это функциональность, позволяющая восстанавливать приложение после сбоя.
Known Folders – это новый сервис, позволяющий получать быструю информацию об «именованных» каталогах, которые использует ОС Vista (например такая информация, как является ли этот каталог жесткой ссылкой или нет, виртуальный он или нет и т.п.)
Network Lists – список сетей.
Управление питанием компьютера
Контрол типа CommandLink
и др.
Конечно, все этого можно реализовать вызовом нативных функций и написание собственных библиотек, что например и было сделано в проекте Paint.NET, но в компании Microsoft видимо решили восполнить этот пробел и выпустили собственную библиотеку, которая содержит недостающую функциональность. Название этой библиотеки Vista Bridge. Эта библиотека (ее исходный код) входит в состав Windows SDK, но самую свежую версию можно скачать по ссылке указанной выше.
Архив, которые скачивается по указанной ссылке, содержит исходные коды библиотеки и набор примеров. После сборки библиотеки вы можете подключать ее к любому проекту. Сама библиотека получается не большая, всего порядка 140Кб. НО при написании проекта, вы должны учитывать 2 вещи:
Приложение будет работать только в Windows Vista.
В файл манифеста приложения необходимо добавить (если будут использоваться визуальные контролы) следующие строки
иначе приложение у вас может свалится (по крайней мере у меня падало, пока я не добавил эти строки).
Пример создание диалогового окна
Чем хороша для WPF эта библиотека, она позволяет создавать Task Dialog в ресурсах (например окна), а потом пользоваться ими. Ниже я привел пример как с помощью этой библиотеки можно сделать стилизованное диалоговое окно:
FooterText="Контроль учетных записей (UAC) помогает предотвратить несанкционированные изменения на компьютере."
CollapsedControlText="Сведения"
ExpandedText="C:\Windows\System\mmc.exe"
MainIcon="Shield"Instruction="Windows требует разрешение на продолжение"Content="Если это действие запущено вами, то продолжайте. Консоль управления MMC">
Вот, что получается (развернутый и свернутый варианты):
Вместо заключения
Я не стал описывать всю функциональность данной библиотеки, т.к. по примерам, которые идут вместе с ней, вполне можно самому разобраться, что да как. Но вот такие диалоговые окна для многих стилизованных проектов, на мой взгляд, будут очень даже не плохи.
Многие возможности при создании таких тасков к сожаления не поддерживается (возможно пока). Так, свойство Content может быть только строкой, а было бы неплохо, если бы оно было контейнером для других элементов — можно было бы впихнуть туда, все что душе угодно. Так же нельзя менять размеры таких окон, но это скорее всего ограничения уже самой Windows.