Whilst I have never tried to directly host a page in the canvas control, I can confirm that you can host it in a Frame control sitting on the canvas control. Then set the source of the Frame control to show the Page control. Please see below:
<canvas>
<frame x:name="m_ChildPageView" xmlns:x="#unknown">
Source="ChildPageView.xaml"
Canvas.Left="150" Canvas.Top="150"
Width="2800" Height="1500"/>
</frame></canvas>
This solution would allow you to show your content, without having to read the XAML page yourself.