How do I make a Canvas
stretch fully horizontally with variable width? This is the parent Canvas
, so it has no parents, only children.
XAML Source: it displays in blend http://resopollution.com/xaml.txt
Use a Grid
as the top level element in your UI - it'll stretch to fill its container. Then put a Canvas
with HorizontalAlignment="Stretch"
inside the Grid
and it'll behave the way you want.
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas Background="Blue"/>
</Grid>
That worked for me. The key is your top level UI element. While a Grid
fills all available space by default, Canvas
es take up only as much room as their contents demand.