Как стать автором
Обновить

Программируем Windows 7: Taskbar. Часть 7 – ThumbnailClip

Время на прочтение 2 мин
Количество просмотров 751
Как мы уже видели, Windows 7 обладает удобной функциональностью по отображению preview окон приложений. При наведении мыши на значок окна в панели задач можно посмотреть уменьшенное представление окна за считанные секунды. Это очень удобно когда у пользователя открыто большое количество окон.

По умолчанию в этих preview отображается все содержимое окна. Однако, для некоторых приложений было бы гораздо удобнее показывать в preview не все содержимое окна, а только его часть. Такая функциональность также предусмотрена для панели задач Windows 7 и мы можем использовать ее для своих приложений. Давайте разберемся с этой возможностью панели задач Windows 7.



Как обычно для этого будем использовать .NET Interop Sample Library. В рамках оберток для функций из системных библиотек Windows здесь присутствует метод SetThumbnailClip, который поможет нам в реализации данной функциональности. При вызове данного метода в параметрах необходимо передать текущий экземпляр формы и координаты, ограничивающие область окна.

private void Clip5_Click(object sender, EventArgs e)
{
WindowsFormsExtensions.SetThumbnailClip(this, new Rectangle(10, 10, 145, 145));
}


На этом примере хорошо видно, что использовать этот метод очень легко.

Давайте создадим небольшое приложение, где посмотрим на возможности этой функциональности. Для этого я создам пустое приложение, в которое добавлю несколько несколько элементов управления. После запуска приложения preview окна будет выглядеть следующим образом.



Видно, что изначально в preview отображается все окно. Давайте ограничим область отображения при помощи метода SetThumbnailClip. Отобразим, например, только поля ввода, которые находятся на форме.



Что интересно, если у нас на форме имеется динмический контент (например, видео), то он будет отображаться в динамике. В демонстрационном приложении я разместил несколько анимированных изображений и отобразил их в рамках preview. При этом нет необходимости для этого делать что-то еще.



Что важно, в процессе работы приложения мы можем изменять содержимое preview. Например, в какой-то момент времени нам может быть необходимо вывести содержимое какого-то важного поля ввода, а в другой момент — отобразить изображение с формы. Такая динамичность может дать пользователю возможность получать актуальную для него информацию.

Наконец если нам необходимо отобразить все содержимое формы можно использовать тот же самый метод, но передать ему размеры всей формы. В этом случае в preview снова будет отображаться все окно.

private void NoClip_Click(object sender, EventArgs e)
{
WindowsFormsExtensions.SetThumbnailClip(this, new Rectangle(new Point(0, 0), Size));
}


Демонстрационное приложение:
Taskbar-ThumbnailClip.zip
Теги:
Хабы:
+30
Комментарии 16
Комментарии Комментарии 16

Публикации

Истории

Работа

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн