Насколько я понимаю, если Canvas не содержит одного или нескольких дочерних объектов DisplayObject, он всегда будет сообщать о своих свойствах ширины и высоты как 0, независимо от того, какие размеры в процентах вы к нему применили.
В Canvas всегда можно добавить пустой фиктивный объект DisplayObject, но это будет не очень элегантно. В зависимости от того, как вы планировали реализовать свою собственную сетку, возможно, вам придется пересмотреть дизайн ...