Эффект DropShadow для Winform медленный? - PullRequest
0 голосов
/ 18 августа 2011

Я применяю эффект Drop Shadow к моей выигрышной форме без полей, переопределяя свойство CreateParams, и оно также отлично работает, но я не знаю, почему оно замедляет приложение во время перемещения формы.

Мой код:

 private const int CS_DROPSHADOW = 0x20000;
    protected override CreateParams CreateParams
    {
        get
        {
              CreateParams parameters = base.CreateParams;
              if (OSFeature.IsPresent(SystemParameter.DropShadow))
              {
                  parameters.ClassStyle |= CS_DROPSHADOW;
              }
              return parameters;
        }
    }

1 Ответ

2 голосов
/ 18 августа 2011

CS_DROPSHADOW создает область прозрачности. Требуется намного больше времени, чтобы смешать тень с тем, что может быть под ней, и затем отобразить ее. Это особенно верно в Windows 2000 / XP. Я думаю, что они улучшили производительность для прозрачности в Windows Vista / 7.

Этот стиль изначально был предназначен для таких вещей, как меню, которые не могут быть перемещены пользователем. Поэтому производительность CS_DROPSHADOW, вероятно, также не была главной проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...