在桌面背景上绘制作为壁纸替换(Windows/C#)

nar*_*rdi 11 c# windows desktop wallpaper

我正在尝试制作一个需要在桌面上绘制的应用程序,在图标后面,所以它似乎取代桌面壁纸.我已经找到了一些解决方案,但大多数都不能很好地工作(很多闪烁).一个解决方案似乎是我正在寻找的,但我真的没有得到它.我已经使用或者更高级别的图形库,或只是Windows窗体,和一些C++,但只有在非Windows平台上做多是C#应用程序.

如果有人可以为我"翻译"它或为我提供替代解决方案,我将不胜感激!

nar*_*rdi 7

我从来没有找到我想要的解决方案,但这里有最好的(仅限?)替代方案:

  • 绘制到"SysListView32"窗口(ProgMan - > SHELLDLL_DefView - > SysListView32).这将在桌面图标后面绘制,但在使用动画时会闪烁.如何:链接(你必须在.NET中使用interop).

  • 使用DirectDraw叠加层.您将桌面颜色设置为某种模糊的颜色,具有该颜色的所有内容将替换为覆盖图上的内容.这在我的问题和VLC壁纸模式的示例中使用.但是,这与Aero不兼容.如何:链接(我想你可以在.NET中使用Managed DirectX?).

  • 这是太晚了,但我能够用这个[链接](http://www.codeproject.com/Articles/856020/Draw-Behind-Desktop-Icons-in-Windows)来做. (3认同)