[Положение]
У меня есть собственный userControl (в основном iamge с некоторым текстом под ним). В моей программе я добавляю два из них и реализую метод перетаскивания с помощью
public partial class CustomItem : UserControl
{
private bool IsDragging { get; set; }
private Point clickPosition;
public CustomItem()
{
InitializeComponent();
this.DataContext = this;
this.MouseLeftButtonDown += (s, ea) =>
{
clickPosition = ea.GetPosition(this.LayoutRoot);
this.CaptureMouse();
IsDragging = true;
};
this.MouseMove += (s, ea) =>
{
if (IsDragging)
{
this.transFormThisShit.X = ea.GetPosition(this).X - clickPosition.X;
this.transFormThisShit.Y = ea.GetPosition(this).Y - clickPosition.Y;
}
};
this.MouseLeftButtonUp += (s, ea) =>
{
this.ReleaseMouseCapture();
IsDragging = false;
};
}
}
[Проблема]
Я могу свободно перемещаться по объектам на экране, это именно то, что я хочу. Но когда я опускаю 2 из этих элементов управления друг на друга, я хочу, чтобы произошло событие. Что-нибудь вообще, но почему-то я не могу получить какие-либо показания на контроле, на которые я его бросаю.
Есть ли какой-нибудь возможный способ реализовать это в приведенном выше коде, чтобы, когда я уронил 2 этого элемента управления поверх друг друга, я мог перехватить / некоторое событие, для которого я могу получить оба элемента управления?
Надеюсь, вы понимаете мой вопрос.
[Изменить]
Если это невозможно в текущем контексте, пожалуйста, назовите способ, которым я могу сделать это с помощью пользовательских элементов управления.
Может быть, есть что-то вроде элемента управления перетаскиванием, которое я могу "редактировать" в том же самом элементе, что и этот элемент управления!