Как найти позицию для вставки перетаскиваемого элемента при вставке в новый блок - PullRequest
0 голосов
/ 23 октября 2019

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

Используя Blazor, как мне указать положение для вставки? По событию мыши я могу найти экран и Клиент X и Y, но мне нужна локальная позиция в моей панели. Могу ли я получить положение на приборной панели и вручную сделать математику? Есть ли какие-нибудь вспомогательные функции, о которых я не знаю?

Пример того, чего я пытаюсь достичь (панель мониторинга портала Azure): enter image description here

Итак, здесь естьсписок предметов галереи и панель инструментов. Элемент можно перетащить из списка и поместить в любое место на панели инструментов. Я могу достичь того же, но у меня проблемы с получением правильной позиции. Скажем, я что-то перетащил и уронил на 0,0 на панели инструментовТеперь я ожидаю, что он будет размещен в верхнем левом углу. Проблема в том, как мне узнать, что он упал на 0,0? Событие положения мыши предоставляет только координаты в пространстве экрана. Как рассчитать смещение между положением мыши и положением локальной прорисовки там, где я хочу ее визуализировать?

1 Ответ

1 голос
/ 23 октября 2019

перетащите элемент из ... влево, вправо? Я не уверен, что в настоящее время вы можете делать все перетаскивания исключительно в C #. Однако вы можете использовать JSInterop для выполнения действий, которые вы не можете выполнять в C #. Вы можете использовать ElementReference ... Но прежде чем приступить к написанию кода, выполните поиск библиотек, созданных сообществом для этих действий. Следующая статья, хотя я ее и не читал, может предоставить вам решение: https://chrissainty.com/investigating-drag-and-drop-with-blazor/

...