Есть предложения о том, как создать плавающую палитру инструментов в стиле Photoshop? Я пробовал несколько идей, таких как:
- Создание дочернего окна, установка его FormBorderStyle в FixedToolWindow и показ его как дочернего элемента основной формы, но окно инструмента крадет фокус из основной формы.
- Создание дочернего окна, как описано выше, и использование различных комбинаций флагов, передаваемых в CreateParams, но все еще сталкивающихся с теми же проблемами фокуса.
- Создание палитры инструментов в виде UserControl и «плавание» путем установки его родителя в качестве рабочего стола (с помощью функции user32 # SetParent), но тогда он больше не является дочерним элементом основной формы и не минимизирует / восстанавливает с основной формой.
Я думаю, что # 3 - это путь, и мне нужно написать код, чтобы синхронизировать состояние окна палитры инструментов с основной формой, а также реализовать возможность перетаскивания палитры, рисовать границы и т.д ...
Предложения о лучших способах решения этой проблемы?