Although absolute positioning of objects by using a Canvas is useful in some scenarios, it is typically a bad strategy in a browser window that will vary in size. Absolute positioning does not allow your objects to reflow on the page in response to browser window resizing; instead, objects remain positioned at their specified pixel positions.
StackPanel and Grid allow for reflow of content. The Grid object is the root element used by the Visual Studio Silverlight template. Although the Grid is more complex to use than other Panel objects, it enables reflow of content and is flexible enough for you to create a variety of object layouts.
To get the best window resizing behavior (in addition to using Panel objects to position child objects), it is generally best to leave the DOM width and height properties at 100% and exclude any width or height declarations from the root element of your XAML file or the layout root element. For example, in the following XAML, neither the root element nor the layout element has a width or height defined.
XAML
<UserControl x:Name="RootElement" x:Class="WindowResizingSample.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="LayoutRoot" Background="White">
</Grid>
</UserControl>