Как показать элемент, который перетаскивается в WPF?
Я работал над приложением WPF, которое по существу является редактором WYSIWYG,и использует функцию перетаскивания. У меня есть функция перетаскивания, но нужно сделать ее более интуитивно понятной и удобной для пользователя. Часть этого будет включать в себя фактическое отображение перетаскиваемого элемента. Какой самый простой способ сделать это? Предметы, которые я перетаскиваю, ничего особенного, но я даже не уверен, где искать, как это сделать.
1 ответов
вам нужно будет использовать без dragdrop.Givefeedback встречает среди прочего; Хайме имеет большой блоге изложение различных сценариев, из которых вы описываете включен.
тривиальный пример из блога Хайме в работе с манипуляцией курсором...
private void StartDragCustomCursor(MouseEventArgs e)
{
GiveFeedbackEventHandler handler = new GiveFeedbackEventHandler(DragSource_GiveFeedback);
this.DragSource.GiveFeedback += handler;
IsDragging = true;
DataObject data = new DataObject(System.Windows.DataFormats.Text.ToString(), "abcd");
DragDropEffects de = DragDrop.DoDragDrop(this.DragSource, data, DragDropEffects.Move);
this.DragSource.GiveFeedback -= handler;
IsDragging = false;
}
void DragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
try
{
//This loads the cursor from a stream ..
if (_allOpsCursor == null)
{
using (Stream cursorStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(
"SimplestDragDrop.DDIcon.cur"))
{
_allOpsCursor = new Cursor(cursorStream);
}
}
Mouse.SetCursor(_allOpsCursor);
e.UseDefaultCursors = false;
e.Handled = true;
}
finally { }
}