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

    Как мы уже видели, 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
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 16

      +2
      Занятное чтиво с утра пораньше… Вы небось всю ночь писали? :) Спасибо — полезно…
        –23
        Автор — ты бесполезен
          –4
          Не более чем ты.
            –6
            ты понял о чем я ;)
            +2
            Кыш под лавку
            +9
            Эх, быстрей бы появился энтузиаст, который используя всё это написал бы отличный клиент Twitter для Windows 7 ;)
              +3
              Я готов написать на WPF специально для Win7. Вот только я с твитом не знаком и не знаю «идеалов»…
                +3
                Думаю никто не станет спорить, что идеал это Tweetie (который только для Mac). Для Windows лично для меня среди фаворитов это blu
              +2
              Я так понял, что эти тумбинашки появляются при наведении на них мышкой. А позволительно ли приложению самому показать свою тумбинашку на таскбаре, даже если пользователь не навел на него мышку?
              Ну, к примеру, пришло новое сообщение — всплыла тумбинашка на 5 сек, и снова потухла.
                0
                Нет. Она может появляться только когда пользователь мышь наведет.
                  +2
                  Я думаю это возможно, вычислив чудным образом координаты своего приложения на таскбаре и нарисовав красивое окошко используя WPF :)
                  +3
                  судя по количеству топиков, касающихся только «программирования сайдбара», семерка будет самой дружельбной из операционных систем :)
                    –1
                    ПРограммирование таскбара это хорошо конечно. Но хотелосб бы ТУТ почитать про Виноус 7 как таковой, пересел после ХП. Висту даже не ставил. Всё новоё. Гдк бы почитать про новые фичи?
                      0
                      в блоге Windows 7.
                        0
                        Windows 7 → Программируем Windows 7: Taskbar. Часть 7 – ThumbnailClip

                        весь блог забит программированием ;)

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое