因此,我正在尝试使用类似于其他程序(例如Rocketdock等(的程序进行处理。或任何东西。"码头"内部是一个图标集合,每个图标都打开了码头以外的窗口。在窗口内部,可以根据单击哪个图标执行不同的功能。我认为我可以使用Winforms做这样的事情,但是只要程序正在运行,我就想创建桌面上持久的东西。这在Winforms中可以吗?有图书馆或可以帮助我的东西吗?
我快速绘制了我在说什么。我希望这可以帮助澄清我的意思。
示例草图
我现在没有太多工作。我仍在尝试找出一个起点。
检查间谍 https://learn.microsoft.com/en-us/visualstudio/debugger/introducing-spy-increment?view=vs-2019您用于灵感的产品上的窗户样式。
检查是否使用system.windows.forms.form.createparams足以增强将创建的窗口(以您的派生表单类覆盖它(,例如:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override CreateParams CreateParams
{
get
{
var r = base.CreateParams;
r.ExStyle |= 0x88;
return r;
}
}
}
请参阅此处的样式信息:
- https://learn.microsoft.com/en-us/windows/desktop/winmsg/window-styles
- https://learn.microsoft.com/en-us/windows/desktop/winmsg/extended-window-styles
主题是如此之大,以至于您需要进行大量研究才能达到所需的结果,但这应该提供一个良好的开始。
也值得注意的是,P/Invoke允许您调用几乎所有Win32函数使用Windows行为,而Windows行为是通过.NET API可用的。