Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

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

Напечатать страницу
25.06.2009 11:15 | deeper2k

Как мы уже видели, 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));
}



Загрузить демо-приложение >>>

Sergey Zwezdin, TheVista.Ru Team
Microsoft Most Valuable Professional, Microsoft Regional Director
июнь 2009

Комментарии

Комментариев нет...
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.028 секунд (Общее время SQL: 0.014 секунд - SQL запросов: 51 - Среднее время SQL: 0.00027 секунд))
Top.Mail.Ru