【发布时间】:2009-10-27 02:27:02
【问题描述】:
如何将 C# 程序(例如 WPF 或 WF)放在桌面图标(如墙纸)下?
【问题讨论】:
-
您可能想要更好地表达这一点。您希望您编写的程序在运行时显示在桌面图标下方?
-
是的,我确实希望您编写的程序在运行时出现在桌面图标下方!)
如何将 C# 程序(例如 WPF 或 WF)放在桌面图标(如墙纸)下?
【问题讨论】:
我觉得很有可能,试试这个:
桌面将放置在您的应用程序拥有的窗口上,并且可以按照您想要的方式对其进行操作(即,在其下方放置一些东西)。
另外,当拥有桌面的应用程序关闭时,不要忘记恢复桌面的父级。
在http://www.pinvoke.net/ 查找 FindWindow、GetClassName 和 SetParent
【讨论】:
简短的回答是你不能真正做到(无论如何在托管 C# 中)。如果可能的话,您将需要使用 Interop,并且您可能会调用 Windows 不作为 API 提供的东西。
...虽然...正如 Ole Jak 提到的,Stardock 似乎正在以某种方式做到这一点...
桌面是它自己包含的项目。相同的过程处理图标和这些图标“后面”的壁纸。
您可以将壁纸更改为不同的图像,并且您过去可以创建一个Active Desktop 来显示 HTML 内容,但在 Vista 中已停止这样做。
你实际上想做什么?也许还有另一种方法可以达到类似的效果?
【讨论】:
有 DreamScene 用于 vista。您可以将视频作为资源管理器背景。我不知道你是否可以运行一个 C# 程序来输出背景视频。
【讨论】: