Brian Triplett
Brian Triplett

Reputation: 3532

Panning contents of a Canvas in a ScrollViewer

I'm trying to implement panning within a Canvas within a scrollviewer like:

<ScrollViewer>
    <Canvas>

        <!-- some visual elements here -->

    </Canvas>
</ScrollViewer>

I want a click and drag operation within the canvas to cause the contents of the canvas to move. I've tried handling the MouseDown, MouseMove, and MouseUp events to do a translation in the manner described here but it hasn't worked.

Any ideas?

Upvotes: 4

Views: 991

Answers (2)

Ragepotato
Ragepotato

Reputation: 1630

You can't do that with your current setup. A Canvas will stretch beyond its parent container and the scrollviewer won't know the size of the Canvas (it will tell it it doesn't need to scroll) and therefore can't create the handles.

If you want to skip with that set up change the canvas to a grid and use the Vertical Scroll and Horizontal Scroll and associated set properties to move the visible section of the grid around.

Upvotes: 2

Bill Reiss
Bill Reiss

Reputation: 3460

Try giving your Canvas a set Width and Height and give it a background color (Transparent should be fine) and see if that helps you get your mouse events.

Upvotes: 0

Related Questions