Есть ли способ использовать WinForms для создания приложения, похожего на «док», которое может открывать дополнительные окна? - PullRequest
0 голосов
/ 03 мая 2019

Итак, я пытаюсь работать с программой, использующей интерфейс, аналогичный другим программам, таким как RocketDock и т. Д. Когда программа запущена, она должна отображаться как вертикальная док-станция без границ или чего-либо еще. Внутри «дока» будет набор значков, каждый из которых открывает окно помимо дока. Внутри окна могут быть выполнены различные функции в зависимости от того, какой значок был нажат. Я думаю, что могу сделать что-то подобное с WinForms, но я хотел создать что-то устойчивое на рабочем столе, пока программа работает. Будет ли это возможно в WinForms? Есть ли библиотека или что-то, что могло бы мне помочь?

Я сделал быстрый набросок того, о чем я говорю. Я надеюсь, что это поможет прояснить, что я имею в виду.

пример эскиза

У меня сейчас мало работы. Я все еще пытаюсь выяснить отправную точку.

1 Ответ

0 голосов
/ 03 мая 2019

Отметьте Spy ++ https://docs.microsoft.com/en-us/visualstudio/debugger/introducing-spy-increment?view=vs-2019, чтобы использовать его в качестве инструмента для изучения всех стилей окон в продукте, который вы используете для вдохновения.

Проверьте, достаточно ли использования System.Windows.Forms.Form.CreateParams для расширения создаваемого окна (переопределите его в производном классе Form), например:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    protected override CreateParams CreateParams
    {
        get
        {
            var r = base.CreateParams;
            r.ExStyle |= 0x88;
            return r;
        }
    }
}

см. Информацию о стилях здесь:

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

Стоит также отметить, что P / Invoke позволяет вам вызывать практически любую функцию Win32 для использования поведения Windows, которое недоступно через .NET API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...