Aligning content in a WPF Viewbox
Solution 1
Try VerticalAlignment="Top"
and HorizontalAlignment="Left"
on your viewbox. It will cause it to be anchored to the top and left side.
<Grid>
<Viewbox VerticalAlignment="Top" HorizontalAlignment="Left">
...
</Viewbox>
</Grid>
If you want it to completely fill (but keep it uniform) you can use Stretch="UniformToFill"
Solution 2
According to MSDN the Viewbox is used to stretch the child elements. Since the child elements would be stretched, you would have to set the content alignment of the children.
You may want to look at this for more information on the Viewbox: How do I keep aspect ratio on scalable, scrollable content in WPF?
Related videos on Youtube
Jeff B
Updated on March 21, 2020Comments
-
Jeff B over 4 years
I have a Viewbox with
Stretch=Uniform
in order to not distort the content. However, when the frame window is wider or taller than the content, the Viewbox content is always centered.I cannot seem to find any content alignment options on the Viewbox. Is there a way to do this?
-
Jeff B over 15 yearsI can set HorizontalAlignment and VerticalAlignment on the child object and it still centers when the Viewbox scales it.
-
Josh Sutterfield over 12 yearsWhat I see is that you want to set alignment on the Viewbox itself (as in John Z's answer). Strangely enough this does cause the contents to align similarly. That's an odd thing, since it naturally also aligns the ViewBox in its container.