Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3618452
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T22:45:14+00:00 2026-05-18T22:45:14+00:00

I have a ListBox and a DockPanel . List box contains items that are

  • 0

I have a ListBox and a DockPanel. List box contains items that are supposed to be dragged onto the dock panel. I’ve implemented that by following this link.

There are a couple of things I do not understand though:

  1. While dragging, all I see is a cursor. I’d like to literary see the list item I am
    dragging to move around with my cursor. How do I do that?
  2. Is the DragDropEffect property only for the different cursor design or it has a
    higher purpose? 🙂
  3. How do I make list item disappear from the ListBox once it is dropped onto the
    DockPanel?
  4. I’d like to enforce some animation on the items that I drag, like glow once it is
    dropped. Which trigger/setter should I use for that?

Here’s my code for basic dragging and dropping:

Code-behind for the ListBox part

private Point startPosition;

private void ListBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    startPosition = e.GetPosition(null);
}

private void ListBox_PreviewMouseMove(object sender, MouseEventArgs e)
{
    Point currentPosition;
    Vector offset;
    ListBox listBox;
    ListBoxItem item;
    Match match;
    DataObject dragData;

    currentPosition = e.GetPosition(null);
    offset = startPosition - currentPosition;

    if (e.LeftButton == MouseButtonState.Pressed &&
        (Math.Abs(offset.X) > SystemParameters.MinimumHorizontalDragDistance ||
         Math.Abs(offset.Y) > SystemParameters.MinimumVerticalDragDistance))
    {
        // Get the data binded to ListBoxItem object, which is "match"
        listBox = sender as ListBox;
        item = FindAnchestor<ListBoxItem>((DependencyObject)e.OriginalSource);
        match = (Match)listBox.ItemContainerGenerator.ItemFromContainer(item);

        dragData = new DataObject("match", match);
        DragDrop.DoDragDrop(item, dragData, DragDropEffects.Move);
    }
}

Code-behind for the DockPanel part

private void DockPanel_DragEnter(object sender, DragEventArgs e)
{
    if (!e.Data.GetDataPresent("match") ||
        sender == e.Source)
    {
        e.Effects = DragDropEffects.None;
    }
}

private void DockPanel_Drop(object sender, DragEventArgs e)
{
    Match match;
    DockPanel matchSlot;
    ContentPresenter contentPresenter;
    Binding binding;

    if (e.Data.GetDataPresent("match"))
    {
        match = e.Data.GetData("match") as Match;
        matchSlot = sender as DockPanel;

        contentPresenter = new ContentPresenter();
        contentPresenter.ContentTemplate = this.FindResource("MatchTemplate") as DataTemplate;
        binding = new Binding();
        binding.Source = match;
        contentPresenter.SetBinding(ContentPresenter.ContentProperty, binding);

        matchSlot.Children.Clear();
        matchSlot.Children.Add(contentPresenter);
    }
}

Thanks for all the help.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T22:45:15+00:00Added an answer on May 18, 2026 at 10:45 pm

    Ok, after a while I found some answers and discovered a few things on my own.

    As for the DragDropEffect enum, it should be used for two reasons:

    1. To distinguish if the item is moved or copied in the code. It serves like a flag and should be used most commonly like this:

      if (e.DragDropEffect == DragDropEffect.Move)
      {
      …
      }
      else …

    2. To decorate the mouse cursor based on the enum value. This way it tells the user if he or she is moving or copying the item.

    As for the drag and drop visualization here’s a link to the post containing the reference which is an excellent starting point for drag and drop to build on: WPF Drag & Drop: How to literally drag an element?

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have created a listbox control with following DataTemplate <DataTemplate x:Key=lb_Itemtemplate> <DockPanel> <TextBlock Text={Binding}
I have a ListBox that has a style defined for ListBoxItems. Inside this style,
I have a listbox where the items contain checkboxes: <ListBox Style={StaticResource CheckBoxListStyle} Name=EditListBox> <ListBox.ItemTemplate>
I have a ListBox which displays items of variable height. I want to show
I have a listbox that is databound to a Collection of objects. The listbox
I have a ListBox that when in focus, and when I have an item
I have a listbox, and I have the following ItemTemplate for it: <DataTemplate x:Key=ScenarioItemTemplate>
I have a ListBox control that I want to change into having a toggle
I have a DataTemplate which contains a CheckBox and ListBox. When the CheckBox is
I have an ObservableCollection<Object> that contains two different types. I want to bind this

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.