У меня есть элемент управления вкладками, который позволяет мне перетаскивать элементы вкладок из моего приложения.
Это перетаскивание откроет новое окно, которое будет следовать за мышью, пока я не отпущу левую кнопку мыши.
Также этоМожно перетащить элемент вкладки обратно в исходный элемент управления вкладкой и снова присоединить его к своему прежнему родительскому элементу или к любому другому элементу управления, способному понимать перетаскиваемые данные.
private static void DragOutTabControl_PreviewQueryContinueDrag(object sender, QueryContinueDragEventArgs e)
{
e.Handled = true;
if (DragControlIsHit)
{
if (_previewWindow != null && _previewWindow.IsVisible)
{
_previewWindow.Clear();
_previewWindow.Hide();
}
}
else
{
if (_previewWindow == null)
{
_previewWindow = new PreviewWindow();
_previewWindow.SetData();
}
_previewWindow.Left = CursorPos.X - 15;
_previewWindow.Top = CursorPos.Y - 15;
_previewWindow.Show();
}
}
Проблема, с которой я столкнулся сейчас, заключается в том, что когда окно предварительного просмотра следует за мышью, оно располагается непосредственно под курсором.
Таким образом, события dragEnter и dragOver элемента управления вкладки источника нестрельба, так как окно блокирует тестирование попадания.
Даже если я установлю IsHitTestVisible в false в окне, тестирование попадания будет заблокировано, пока перетаскивание все еще активно.
Установка IsEnabled в значение false и изменение фона на nullне иметь никакого эффекта.
public PreviewWindow()
{
Background = null;
IsEnabled = false;
IsHitTestVisible = false;
}
Есть ли возможность скрыть окно предварительного просмотра от каких-либо тестов на попадание или передать тест на попадание вручную любому элементу управления визуально за перетаскиваемым окном?
Изменить, еще некоторую информацию длямоя проблема:
Я не только хочу перетаскивать элементы вкладок из элемента управления вкладками и открывать для них новые окна, но также хочу иметь возможность перетаскивать дополнительные элементы вкладок в существующие окна перетаскивания.
Кроме того, перетаскивание элемента вкладки обратно в исходный элемент управления вкладки должно быть возможным.
Все это работает довольно хорошо, за исключением единственной проблемы, которую я не могу скрыть в окне предварительного просмотра от тестирования перетаскивания и отбрасывания.