Canvas draws on a mutable bitmap that it implicitly creates (assuming that you are not using Canvas.Initialize2).
The memory required is approximately Width * Height * 4 bytes.
This is also true for bitmaps that you load. When you load an image file the memory required depends on the width and height of the image.
The canvas itself will always consume the same memory. You can draw 1000 bitmaps with Canvas.DrawBitmap and the canvas memory usage will be the same.