我通过重写CreateParams属性将阴影效果应用于我的无边框win窗体,它也工作得很好,但我不知道为什么在我移动窗体时它会减慢应用程序的速度。
我的代码:
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;
}
}发布于 2011-08-18 22:11:30
CS_DROPSHADOW创建一个透明区域。它需要更多的时间来混合投影与可能在下面的任何东西,然后渲染它。在Windows 2000/XP上尤其如此。我认为他们提高了Windows Vista/7的透明性。
这种样式最初是用于菜单之类的东西,用户无法移动这些东西。因此,CS_DROPSHADOW的性能可能也不是主要问题。
https://stackoverflow.com/questions/7107562
复制相似问题