Программируем панель задач Windows 7 (ч.7)

Автор: Topol Воскресенье, Май 6th, 2012 Нет комментариев

Рубрика: Операционные системы

Как мы уже видели, Windows 7  обладает удобной функциональностью по отображению 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 окна будет выглядеть следующим образом.

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

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

 

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

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

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

Источник: thevista.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты