我需要一个 WeifenLuo 替代品,它可以在 .NET 和 Mono、Windows、Linux 和 Mac 上运行,最好获得 MIT 许可证。 如果该 API 与 WeifenLuo 的类似,我将不胜感激,但我知道这样的 API 可能不可用。
另外,由于我在谷歌上找不到任何东西,我相信这可能不存在。 在这种情况下,我想要一些关于如何实现这一点的提示。
我有一些(不多)Windows.Forms 经验,并且我不能使用任何 P/Invoke。我已经知道如何检测窗口运动以及如何在给定位置和给定尺寸上创建无边框半透明窗口。
所以这是我面临的一些问题:
在开始之前我还应该注意什么吗?有类似的开源项目可用吗?
在 Mono 上运行时可以禁用所有 PInvoke 到 Win32 API。您付出的代价是失去 Mono/Linux 上的拖放支持,这在某些情况下可能是可以接受的。
编辑:DPS 的一个分支现已托管在 GitHub 上,http://github.com/dockpanelsuite/dockpanelsuite
我一直想要同样的东西。 我一直在测试 Win Forms 的基本布局系统,发现 WinForms 的 Mono Mac 版本并不是 100% 完整,比如拖放尚未实现并且速度很慢。
根据我自己的搜索,GTK# 在所有平台上都有最好的支持。 另一种方法是为每个平台拆分 UI,即 WinFoms、GTK# (linux) 和 Cocoa (cocoa#/monobjc)。
GTK# 看起来不错,但是涉及性强,并且有一个学习曲线。 我自己尝试过QuickSharp,但找不到任何支持,而且weifenluo对接系统缺乏一些功能,并且很难实现表单尺寸。
我最终选择了
[dockDotNet][1]
,它允许 minimumsize
参数,并且非常容易使用。 您可以使用属性管理器设置几乎所有浮动表单属性 - 甚至设置表单图标!