silverlight之RadTreeView实现拖拽

实现的是将RadTreeView中的Item拖拽到TextBox中。

前台代码如下:

前台代码
 1 <telerikNavigation:RadTreeView IsDragTooltipEnabled="False" Margin="5 0 0 5"
 2                     x:Name="RadTreeView1" Grid.Row="1" HorizontalAlignment="Left"
 3                     VerticalAlignment="Top" SelectionMode="Multiple" IsDragDropEnabled="True"  PreviewDragEnded="radTreeView_PreviewDragEnded">
 4                 <telerikNavigation:RadTreeViewItem Header="Item1"
 5                         DefaultImageSrc="../Images/TreeView/Outlook/1PersonalFolders.png"
 6                         IsExpanded="True">
 7                     <telerikNavigation:RadTreeViewItem Header="Item2"
 8                             DefaultImageSrc="../Images/TreeView/Outlook/2DeletedItems.png" />
 9                     <telerikNavigation:RadTreeViewItem Header="Drafts"
10                             DefaultImageSrc="../Images/TreeView/Outlook/3Drafts.png" />
11                 </telerikNavigation:RadTreeViewItem>
12             </telerikNavigation:RadTreeView>
13             <TextBox x:Name="TextBox_DropConsumer" Width="100" Height="30" Grid.Column="2" Grid.Row="1"  BorderThickness="3" Margin="0 10 0 0"
14                     VerticalAlignment="Top" HorizontalAlignment="Left"
15                     telerikDragDrop:RadDragAndDropManager.AllowDrop="True" />

后台代码:

后台代码
 1  public partial class SilverlightControl1 : System.Windows.Controls.UserControl
 2     {
 3         public SilverlightControl1()
 4         {
 5             InitializeComponent();
 6             this.InitializeComponent();
 7             RadDragAndDropManager.AddDropQueryHandler(TextBox_DropConsumer, new EventHandler<DragDropQueryEventArgs>(this.TextBox_OnDropQuery));
 8             RadDragAndDropManager.AddDropInfoHandler(TextBox_DropConsumer, new EventHandler<DragDropEventArgs>(this.TextBox_OnDropInfo));
 9         }
10 
11         ObservableCollection<String> personList = new ObservableCollection<String>();       
12         void TextBox_OnDropQuery(object sender, DragDropQueryEventArgs e)
13         {
14             e.QueryResult = true;
15         }
16         private void radTreeView_PreviewDragEnded(object sender, RadTreeViewDragEndedEventArgs e)
17         {
18             e.Handled = true;
19         }
20 
21         void TextBox_OnDropInfo(object sender, DragDropEventArgs e)
22         {
23             if (e.Options.Status == DragStatus.DropComplete)
24             {
25                 String q = ((e.Options.Payload as Collection<Object>)[0] as RadTreeViewItem).Header as String;
26                 this.TextBox_DropConsumer.Text = q;
27                 MessageBox.Show(q);
28             }
29         }
30     }
原文地址:https://www.cnblogs.com/shangwuyuyi/p/2724656.html