可拖拽的ListBox】的更多相关文章

之前在写播放器的时候,遇到了一个问题,现在播放器无论是千千,KuGoo还是比较原始的MediaPlayer,它们的播放表都是可以拖拽的,直接把文件拖到播放表实现歌曲的添加那个先暂且不说,光是播放表里面的歌曲次序也可以通过拖拽来调整.但是VS提供的ListBox没能直接通过设定某个属性实现这个拖拽排序,于是俺就开始了实现这功能的探索,无意中还找到了ListBox与ListBox之间元素的拖拽,于是一并实现了,遂述此文以记之. 其实无论是ListBox里的拖拽排序,还是ListBox间的拖动,都是通…
整理了两个关于WPF拖拽ListBox中的Item的功能.项目地址 https://github.com/Guxin233/WPF-DragItemInListBox 需求一: 两个ListBox,拖拽其中一个ListBox的Item,放置到另一个ListBox中.参考 http://www.c-sharpcorner.com/uploadfile/dpatra/drag-and-drop-item-in-listbox-in-wpf/ 右边ListBox2本来是空的,从左边ListBox1中拖…
WPF 的ListBox不支持很多常见的用户习惯,如在Explorer中用鼠标可以选择多项Item,并且点击已经选择的Item,按住鼠标左键可以将所有已选择Item拖拽到指定的位置.本文简单的实现了这一功能. 效果图: 拖拽1个Item 拖拽多个Item 说明: 代码下载地址:http://download.csdn.net/download/u012566751/6452323 代码中使用了两个类: 1.DragDropAdorner,用于拖拽过程中显示预览图,代码来自CSDN 2.ListB…
1.拖拽需要实现的事件包括: PreviewMouseLeftButtonDown LBoxSort_OnDrop 具体实现如下: private void LBoxSort_OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var pos = e.GetPosition(LBoxSort); HitTestResult result = VisualTreeHelper.HitTest(LBoxSort,…
在文章开始之前先看一看效果图 我们可以拖拽一个"游戏"给ListBox,并且ListBox也能接受拖拽过来的数据, 但是我们不能拖拽一个"游戏类型"给它. 所以当拖拽开始发生的时候我们必须添加一些限制条件,以防止接受不正确的数据. Item实体 CS ? 1 2 3 4 public class ItemModel : ViewModelBase {     public string ItemName { get; set; } } 组实体 CS public c…
用到了ListBox和TreeView两个控件,ListBox作为数据源,通过拖拽其中的数据放置到TreeView上,自动添加一个树节点 ListBox控件的MouseDown用于获取要拖拽的值并调用DoDragDrop方法 private void listBox1_MouseDown(object sender, MouseEventArgs e)        {            //调用DoDragDrop方法            if (this.listBox1.Select…
想实现这样一个常用功能:在ListBox的一个Item上点住左键,然后拖拽到另外一个控件(如ListView中),松开左键,数据已经拖拽过来. 步骤如下: 1. 设置ListBox 的AllowDrop属性为True 2. 在ListBoxItem 的Style中设置EventSetter <Style x:Key="MyListBoxItemStyle" TargetType="{x:Type ListBoxItem}"> <EventSette…
今天结合之前做过的一些拖拽的例子来对这个方面进行一些总结,这里主要用两个例子来说明在WPF中如何使用拖拽进行操作,元素拖拽是一个常见的操作,第一个拖拽的例子是将ListBox中的子元素拖拽到ListView的某一个节点,从而将该子元素作为当前节点的子节点.第二个例子就是将ListView的某一项拖拽到另外一项上从而使两个子项位置互换,这两个例子的原理类似,实现细节上有所差别,下面就具体分析一下这些细节. DEMO1 一 示例截图 图一 示例一截图 二 重点原理分析             2.1…
需求:界面由多部分控件组成,想要拖拽控件之间的分隔栏以改变尺寸. MainWindow.xaml: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="300"/> <ColumnDefinition Width="300"/> </Grid.ColumnDefinitions> <ListBox Grid.Row="0"…
简单拖拽的实现是,实现源控件的MouseDown事件,和目标控件Drop事件.调用DragDrop.DoDragDrop()以启动拖放操作,DragDrop.DoDragDrop()函数接受三个参数:dragSource.data以及allowedEffects.特别需要注意的 是dragSource参数.该参数标示了拖拽操作的消息源,也决定了所有的消息源事件由谁发出.参数data则用来包装Drag&Drop所操 作的数据.一般情况下,其都是一个DataObject类型的实例.该实例内部应包装拖…