Ищете полностью управляемую замену WeifenLuo (DockPanel Suite) или советы по ее реализации

Мне нужна замена WeifenLuo, которая будет работать как на .NET, так и на Mono, на Windows, Linux и Mac, желательно под лицензией MIT. Я был бы признателен, если бы API был похож на WeifenLuo, но я понимаю, что он может быть недоступен.

Кроме того, поскольку я ничего не нашел в Google, я думаю, что этого может не быть. В этом случае я хотел бы получить несколько советов относительно того, как это реализовать.

У меня есть некоторый (небольшой) опыт работы с Windows.Forms, и я не должен использовать P/Invoke. Я уже знаю, как обнаружить движение окна и как создать полупрозрачное окно без полей в заданной позиции и заданного размера.

Итак, вот некоторые проблемы, с которыми я сталкиваюсь:

  1. WeifenLuo поддерживает несколько левых/правых/верхних/нижних панелей, что позволяет изменять их размер и содержать более одной панели.
  2. Он также поддерживает разделяемые вкладки.

Есть ли что-то еще, о чем я должен знать, прежде чем начать? Существуют ли аналогичные проекты с открытым исходным кодом?


person luiscubal    schedule 17.01.2009    source источник
comment
Чем для вас оказался этот проект? Вы в конечном итоге использовали GTK #? Лично я застрял, пытаясь определить размер плавающих форм с помощью QuickSharp: stackoverflow.com/questions/16290541/. GTK# выглядит интересно — легко ли было его реализовать?   -  person bgmCoder    schedule 01.05.2013


Ответы (3)


Я давно хотел того же. Я тестировал базовую систему компоновки для форм выигрыша и обнаружил, что моно версия WinForms для Mac не завершена на 100%, так как перетаскивание не реализовано и работает медленно.

Из моих собственных поисков GTK# имеет наилучшую поддержку на всех платформах. Другой способ — разделить пользовательский интерфейс для каждой платформы, т. е. WinFoms, GTK# (linux) и Cocoa (cocoa#/monobjc).

person Ben Martin    schedule 29.01.2009
comment
Это приносит еще одну проблему. Есть ли какая-нибудь док-библиотека для GTK# и Cocoa#? Я знаю, что у MonoDevelop есть система стыковки, но мне не повезло сделать ее автономной... - person luiscubal; 29.01.2009
comment
Я еще ничего не нашел. Для Mac это не способ делать вещи. Ознакомьтесь с MonoMate, который использует библиотеку monobjc и имеет базовый интерфейс документа с вкладками. Я не так часто использовал GTK#. - person Ben Martin; 30.01.2009

Можно отключить все API PInvoke для Win32 при работе в Mono. Цена, которую вы платите, — это потеря поддержки перетаскивания в Mono/Linux, что в некоторых случаях может быть приемлемым.

Отредактировано: http://www.lextm.com/2012/05/a-call-to-the-community-dockpanel-suite-history-and-future-2/ Теперь форк DPS размещен на GitHub, http://github.com/dockpanelsuite/dockpanelsuite

person Lex Li    schedule 03.05.2010
comment
Спасибо. Я исследую это немного дальше. - person luiscubal; 03.05.2010

GTK# выглядит красиво, но требует обучения. Лично я попробовал QuickSharp, но нигде не смог найти поддержку, а в системе стыковки weifenluo не хватало нескольких функций, и было сложно реализовать размеры форм.

В итоге я остановился на [dockDotNet][1], который допускает параметр minimumsize, и с ним очень легко работать. Вы можете установить почти все свойства плавающей формы прямо здесь с помощью менеджера свойств - даже установить значок формы!

person bgmCoder    schedule 02.05.2013