コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: JoelWeber/xaml-sdk
        private void OnDragInitialize(object sender, DragInitializeEventArgs e)
        {
            var draggedColumn = ((e.OriginalSource as RadListBoxItem) ?? (e.OriginalSource as FrameworkElement).ParentOfType<RadListBoxItem>()).DataContext as GridViewColumn;

            var dragVisual = new DragVisual() { Content = draggedColumn.Header };
            var payload = DragDropPayloadManager.GeneratePayload(null);
            payload.SetData("DraggedColumn", draggedColumn);

            e.DragVisual = dragVisual;
            e.Data = payload;
            e.AllowedEffects = DragDropEffects.All;
        }
コード例 #2
0
		public FrameworkElement CreateDragVisual(DragVisualProviderState state)
		{
			var visual = new DragVisual();

			var theme = StyleManager.GetTheme(state.Host);
			if (theme != null)
			{
				StyleManager.SetTheme(visual, theme);
			}

			visual.Content = state.DraggedItems.OfType<object>().FirstOrDefault();
			visual.ContentTemplate = this.DraggedItemTemplate;

			return visual;
		}
コード例 #3
0
        private void OnDragInitialize(object sender, DragInitializeEventArgs e)
        {
            var draggedColumn = ((e.OriginalSource as RadListBoxItem) ?? (e.OriginalSource as FrameworkElement).ParentOfType <RadListBoxItem>()).DataContext as GridViewColumn;

            var dragVisual = new DragVisual()
            {
                Content = draggedColumn.Header
            };
            var payload = DragDropPayloadManager.GeneratePayload(null);

            payload.SetData("DraggedColumn", draggedColumn);

            e.DragVisual     = dragVisual;
            e.Data           = payload;
            e.AllowedEffects = DragDropEffects.All;
        }
コード例 #4
0
        public FrameworkElement CreateDragVisual(DragVisualProviderState state)
        {
            var visual = new DragVisual();

            var theme = StyleManager.GetTheme(state.Host);

            if (theme != null)
            {
                StyleManager.SetTheme(visual, theme);
            }

            visual.Content         = state.DraggedItems.OfType <object>().FirstOrDefault();
            visual.ContentTemplate = this.DraggedItemTemplate;

            return(visual);
        }
コード例 #5
0
 private void AssociateObject_PreviewDragEnter(object sender, DragEventArgs e)
 {
     if (AssociatedObject.ItemTemplate != null)
     {
         if (_dragVisual == null)
         {
             FrameworkElement source    = sender as FrameworkElement;
             Point            dragStart = DragManager.DragStartPosition;
             FrameworkElement dragItem  = GetItemContainerFromPoint(AssociatedObject, dragStart) as FrameworkElement;
             Point            itemPos   = dragItem.TranslatePoint(new Point(), source);
             Point            position  = e.GetPosition(source);
             Point            offset    = new Point(dragStart.X - itemPos.X, dragStart.Y - itemPos.Y);
             Size             size      = new Size(dragItem.ActualWidth, dragItem.ActualHeight);
             IList            data      = DragDataManager.GetData(e.Data);
             _dragVisual = new DragVisual(data, source, AssociatedObject.ItemTemplate, offset, size);
         }
         e.Handled = true;
     }
 }
コード例 #6
0
 private void AssociatedObject_PreviewDragLeave(object sender, DragEventArgs e)
 {
     _dragVisual.Destroy();
     _dragVisual = null;
 }
		private void OnDragInitialize(object sender, DragInitializeEventArgs e)
		{
			var treeViewItem = e.OriginalSource as RadTreeViewItem ?? (e.OriginalSource as FrameworkElement).ParentOfType<RadTreeViewItem>();
			var data = treeViewItem != null? treeViewItem.Item : (sender as RadTreeView).SelectedItem;

			var payload = DragDropPayloadManager.GeneratePayload(null);

			var dropDetails = new DropIndicationDetails();
			dropDetails.CurrentDraggedItem = data;

			DragVisual visual = new DragVisual()
			{
				Content = dropDetails,
				ContentTemplate = data is CategoryViewModel ? this.AssociatedObject.Resources["CategoryDragTemplate"] as DataTemplate : this.AssociatedObject.Resources["ProductDragTemplate"] as DataTemplate
			};

			payload.SetData("DraggedData", data);
			payload.SetData("DropDetails", dropDetails);

			e.DragVisual = visual;
			e.DragVisualOffset = e.RelativeStartPoint;
			e.Data = payload;
			e.AllowedEffects = DragDropEffects.All;

			FrameworkElement sourceItem = e.OriginalSource as RadTreeViewItem ?? (e.OriginalSource as FrameworkElement).ParentOfType<RadTreeViewItem>();
			if (sourceItem == null)
			{
				this.sourceItems = (IList)this.AssociatedObject.ItemsSource;
			}
			else
			{
				this.sourceItems = (sourceItem as RadTreeViewItem).ParentItem != null ? (IList)(sourceItem as RadTreeViewItem).ParentItem.ItemsSource : (IList)this.AssociatedObject.ItemsSource;
			}

			this.sourceItem = sourceItem.DataContext;
			this.destinationItems = this.AssociatedObject.ItemsSource as IList;
			this.isTreeSource = true;
		}