use SizeChanged to initialise viewport