今質問すると、ググレカスで一蹴されそうだが
width, height を Auto にして Stretch にすると
たとえば Name="canvas1"のCanvasに対して
int w = (int)(canvas1.Width);
としても w に変な値が入ってしまう。

// HeightとWidthはあくまで開発者がデザイン時に設定した値

ということは分かったのだが、
ではどうやって値を取得するのかが分からん。

canvas1.RenderSize.Width
canvas1.ActualWidth
とか調べても分からん。

windowサイズの拡縮に合わせて変化する canvas の
縦横を取得するにはどうすれば良いの?

# VC#2008, WPF3.5SP1