【发布时间】:2014-02-27 01:36:06
【问题描述】:
我是 WPF 的新手,我正在尝试使用轮播进行拖放。
首先,我看到了一个使用 listview 的示例。例子是这样的:http://wpftutorial.net/DragAndDrop.html,我试过了,是正确的。
但我的问题是,当我想使用 Carousel 时,我不知道在单击要移动的元素时选择项目。在示例中是这个函数:
private void List_MouseMove(object sender, MouseEventArgs e)
{
// Get the current mouse position
Point mousePos = e.GetPosition(null);
Vector diff = startPoint - mousePos;
if (e.LeftButton == MouseButtonState.Pressed &&
Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance )
{
// Get the dragged ListViewItem
ListView listView = sender as ListView;
ListViewItem listViewItem =
FindAnchestor<ListViewItem>((DependencyObject)e.OriginalSource);
// Find the data behind the ListViewItem
Contact contact = (Contact)listView.ItemContainerGenerator.
ItemFromContainer(listViewItem);
// Initialize the drag & drop operation
DataObject dragData = new DataObject("myFormat", contact );
DragDrop.DoDragDrop(listViewItem, dragData, DragDropEffects.Move);
}
}
我在 xaml 文件中使用此代码:
<dxca:CarouselItemsControl x:Name="_carouselName"
PreviewMouseLeftButtonDown="List_PreviewMouseLeftButtonDown"
PreviewMouseMove="List_MouseMove" >
我需要获取我要拖动的对象,例如联系人。
// Find the data behind the ListViewItem
Contact contact = (Contact)listView.ItemContainerGenerator.ItemFromContainer(listViewItem);
有什么想法吗?
【问题讨论】:
标签: wpf drag-and-drop carousel