C # WPF - Перетаскивание пользовательского элемента управления (стиль Visual Studio) - PullRequest
0 голосов
/ 18 ноября 2018

Как сделать так, чтобы мои пользовательские элементы управления перетаскивались на сетке, скажем?

Я хочу перетащить панель (пользовательский элемент управления) и перетащить ее куда-нибудь на мой экран, в лучшем случае в сетке.Например, как это делается в Visual Studio, можно взять обозреватель решений, скажем так, и куда-нибудь его уронить, но как именно это сделать?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Я нашел этот пост с очень похожим выводом к этому. разница в масштабе.

в следующем примере будет заменен родительский контейнер

    int i = 0;
    void swapLocations()
    {

        foreach(var formObject in objList) //objList == a list or array on all objects you want to move from one container to another
        {

            if (i % 2 == 0)
            {

                // catch current position             
                Point moveLocation = new Point(formObject.Location.X + formObject.Parent.Location.X,formObject.Location.Y + formObject.Parent.Location.Y);

                // remove this object
                formObject.Parent.Controls.Remove(formObject);

                // add this object to the form
                this.Controls.Add(formObject);

                 // set location
                formObject.Location = moveLocation;

                formObject.SendToBack();
            }
            else
            {
                formObject.BringToFront();
            }
        }
        ++i;
    }
0 голосов
/ 18 ноября 2018

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

Для Drag and Drop во время выполнения смотрите и официальную документацию WPF .Также я предлагаю вам взглянуть на библиотеку GongSolutions.WPF.DragDrop в GitHub, она с открытым исходным кодом, чтобы вы могли увидеть, как они реализовали ее, если предоставляемая ею функциональность не выполняет то, что вам нужно.

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