Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. WPF
  4. drag image

drag image

Scheduled Pinned Locked Moved WPF
csharpcsswpf
13 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Christian Graus

    It works the same way, the only thing is, the way that things are laid out in WPF is a little different. What have you tried ?

    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

    R Offline
    R Offline
    RongNK
    wrote on last edited by
    #3

    The grid have 5 ColumnDefinitions and 5 RowDefinitions. If image i can get current Column and Row by GetValue(Grid.RowProperty) and GetValue(Grid.ColumnProperty) . But i don't know how to get current Column and Row of Mouse. If know i can SetValue. Thank !

    C 1 Reply Last reply
    0
    • R RongNK

      The grid have 5 ColumnDefinitions and 5 RowDefinitions. If image i can get current Column and Row by GetValue(Grid.RowProperty) and GetValue(Grid.ColumnProperty) . But i don't know how to get current Column and Row of Mouse. If know i can SetValue. Thank !

      C Offline
      C Offline
      Christian Graus
      wrote on last edited by
      #4

      Oh, you want to know what column and row the mouse is over ? I'd imagine you'd need to turn the rows and columns into pixel positions to calculate that, but then, if you caught the mouse move event in each grid square, you could just track which square control got the event last.....

      Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

      R 1 Reply Last reply
      0
      • C Christian Graus

        Oh, you want to know what column and row the mouse is over ? I'd imagine you'd need to turn the rows and columns into pixel positions to calculate that, but then, if you caught the mouse move event in each grid square, you could just track which square control got the event last.....

        Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

        R Offline
        R Offline
        RongNK
        wrote on last edited by
        #5

        Can you show me how to "caught the mouse move event in each grid square". Thank :-O

        M 1 Reply Last reply
        0
        • R RongNK

          Can you show me how to "caught the mouse move event in each grid square". Thank :-O

          M Offline
          M Offline
          Mark Salsbery
          wrote on last edited by
          #6

          The grid doesn't really have grid squares. It has column/row definitions that define the grid squares. These definitions are used to layout elements "in" the grid squares. So put elements in the grid squares, and subscribe to events on those elements.

          Mark Salsbery Microsoft MVP - Visual C++ :java:

          C 1 Reply Last reply
          0
          • M Mark Salsbery

            The grid doesn't really have grid squares. It has column/row definitions that define the grid squares. These definitions are used to layout elements "in" the grid squares. So put elements in the grid squares, and subscribe to events on those elements.

            Mark Salsbery Microsoft MVP - Visual C++ :java:

            C Offline
            C Offline
            Christian Graus
            wrote on last edited by
            #7

            Thanks for explaining that a bit better than I did :-)

            Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

            M 1 Reply Last reply
            0
            • C Christian Graus

              Thanks for explaining that a bit better than I did :-)

              Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

              M Offline
              M Offline
              Mark Salsbery
              wrote on last edited by
              #8

              I've got your back. Gives you more time to focus on NullReferenceException issues. ;P

              Mark Salsbery Microsoft MVP - Visual C++ :java:

              R 1 Reply Last reply
              0
              • M Mark Salsbery

                I've got your back. Gives you more time to focus on NullReferenceException issues. ;P

                Mark Salsbery Microsoft MVP - Visual C++ :java:

                R Offline
                R Offline
                RongNK
                wrote on last edited by
                #9

                I have a grid gr and divided it into 5 row, 5 column and placed a Image in it

                Image tem = new Image();
                tem.Source = new BitmapImage(new Uri("..."));
                gr.Children.Add(tem);
                tem.SetValue(Grid.ColumnProperty,0);
                tem.SetValue(Grid.RowProperty,0);

                tem.MouseLeftButtonDown += new MouseButtonEventHandler(tem_MouseLeftButtonDown);
                tem.MouseLeftButtonUp+= new MouseButtonEventHandler(tem_MouseLeftButtonUp);
                tem.MouseMove += new MouseButtonEventHandler(tem_MouseMove);

                Now, i want to make tem_MouseLeftButtonDown, tem_MouseLeftButtonUp, tem_MouseMove to move Image from (row=i,column=j) to (row=Mouse point,column=Mouse point), in window form i can but in wpf i can't. Sorry for my english. Thank :-O

                M 2 Replies Last reply
                0
                • R RongNK

                  I have a grid gr and divided it into 5 row, 5 column and placed a Image in it

                  Image tem = new Image();
                  tem.Source = new BitmapImage(new Uri("..."));
                  gr.Children.Add(tem);
                  tem.SetValue(Grid.ColumnProperty,0);
                  tem.SetValue(Grid.RowProperty,0);

                  tem.MouseLeftButtonDown += new MouseButtonEventHandler(tem_MouseLeftButtonDown);
                  tem.MouseLeftButtonUp+= new MouseButtonEventHandler(tem_MouseLeftButtonUp);
                  tem.MouseMove += new MouseButtonEventHandler(tem_MouseMove);

                  Now, i want to make tem_MouseLeftButtonDown, tem_MouseLeftButtonUp, tem_MouseMove to move Image from (row=i,column=j) to (row=Mouse point,column=Mouse point), in window form i can but in wpf i can't. Sorry for my english. Thank :-O

                  M Offline
                  M Offline
                  Mark Salsbery
                  wrote on last edited by
                  #10

                  The Grid control, being a Panel element, is suited for layout of child elements. For what you are doing, it would be much simpler to use another simpler panel like a Canvas and keep track of the cell coordinates yourself. That's just my opinion. You could do it with a Grid, but when I picture the code in my head, it looks way messier than it would be using a canvas.

                  Mark Salsbery Microsoft MVP - Visual C++ :java:

                  C 1 Reply Last reply
                  0
                  • M Mark Salsbery

                    The Grid control, being a Panel element, is suited for layout of child elements. For what you are doing, it would be much simpler to use another simpler panel like a Canvas and keep track of the cell coordinates yourself. That's just my opinion. You could do it with a Grid, but when I picture the code in my head, it looks way messier than it would be using a canvas.

                    Mark Salsbery Microsoft MVP - Visual C++ :java:

                    C Offline
                    C Offline
                    Christian Graus
                    wrote on last edited by
                    #11

                    Yes, I was thinking that, too. I am assuming he wants the image to jump between cells, not move smoothly, but even then, it makes more sense to track positions than use an actual grid, IMO.

                    Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                    M 1 Reply Last reply
                    0
                    • C Christian Graus

                      Yes, I was thinking that, too. I am assuming he wants the image to jump between cells, not move smoothly, but even then, it makes more sense to track positions than use an actual grid, IMO.

                      Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                      M Offline
                      M Offline
                      Mark Salsbery
                      wrote on last edited by
                      #12

                      Agreed. I was thinking mostly of the hit-testing being messy, but looking again, I see that WPF drag and drop could be used with drop targets in each cell to let the framework do a lot of that. That may even be simpler than using a canvas :)

                      Mark Salsbery Microsoft MVP - Visual C++ :java:

                      1 Reply Last reply
                      0
                      • R RongNK

                        I have a grid gr and divided it into 5 row, 5 column and placed a Image in it

                        Image tem = new Image();
                        tem.Source = new BitmapImage(new Uri("..."));
                        gr.Children.Add(tem);
                        tem.SetValue(Grid.ColumnProperty,0);
                        tem.SetValue(Grid.RowProperty,0);

                        tem.MouseLeftButtonDown += new MouseButtonEventHandler(tem_MouseLeftButtonDown);
                        tem.MouseLeftButtonUp+= new MouseButtonEventHandler(tem_MouseLeftButtonUp);
                        tem.MouseMove += new MouseButtonEventHandler(tem_MouseMove);

                        Now, i want to make tem_MouseLeftButtonDown, tem_MouseLeftButtonUp, tem_MouseMove to move Image from (row=i,column=j) to (row=Mouse point,column=Mouse point), in window form i can but in wpf i can't. Sorry for my english. Thank :-O

                        M Offline
                        M Offline
                        Mark Salsbery
                        wrote on last edited by
                        #13

                        Drag & drop is another alternative you could consider... Drag & Drop Explained End to End[^]

                        Mark Salsbery Microsoft MVP - Visual C++ :java:

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups