Search code examples
c#wpfdrawingdraggeometry

WPF: How to draw a circle and drag it around?


I am new to WPF.

I want to draw a small circle on Canvas when I click mouse and be able to drag it around smoothly.

How can I accomplish this?


Solution

  • "whatever it is" matters because placement of elements in WPF is highly dependent on the parent container. It's easy to move something 20px to the right inside a Canvas (just add to Canvas.Left), but it's much harder to do so in a Grid (you have to deal with Column, ColumnSpan and Margin).

    There's a code project article describing how to drag elements inside a Canvas: Dragging Elements in a Canvas

    If you want to move just that circle and not other controls in an existing Canvas/Grid; I suggest you use a DragCanvas (from the article) as an overlay over the normal Canvas/Grid.

    As for the 'draw a circle' part: just use an Ellipse as element inside the DragCanvas.