Viewbox ExampleUse the WPF Viewbox control to stretch an internal control. Set the Stretch XAML attribute.
This page was last reviewed on Sep 29, 2022.
Viewbox, WPF. A Viewbox resizes the control nested within it. With its Stretch attribute, we resize the element to fill the entire Viewbox.
Getting started. Please drag a Viewbox to your Window—it will be nested within the default Grid. Now adjust its properties. Add a Stretch attribute.
Example. Here we adjust a Viewbox and its XAML. In the screenshot, the Stretch attribute is set to "Fill." So the text in the TextBox becomes distorted.
Often Using "Fill" will not look good: it may also lead to blurring or other pixel artifacts.
Fill This means that the internal element within the Viewbox should be expanded as far as possible in both directions. Ratios are ignored.
Uniform The element is expanded so that its ratios are preserved, as far as possible. The control is not cropped.
UniformToFill This expands the control until it fills the entire Viewbox. Cropping may occur.
Tip When using a Viewbox, I recommend trying all the Stretch options to find the best one for your purpose.
Example markup, XAML:
<Window x:Class="WpfApplication10.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Viewbox HorizontalAlignment="Left" Height="299" Margin="10,10,0,0" VerticalAlignment="Top" Width="497" Stretch="Fill"> <TextBox Height="23" TextWrapping="Wrap" Text="TextBox" Width="120"/> </Viewbox> </Grid> </Window>
RenderTransform. A Viewbox is not the only way to scale and transform a control. You can add a RenderTransform element inside your control to specify how it is rendered.
Tip RenderTransform element can apply skew, scale, rotate and translate transformations.
Note, simple effects. The Viewbox is great for simple stuff. A DoubleAnimation element (along with a Storyboard) can be used for animating things.
Note, images. A Viewbox makes it easier to replace the inner element in a dynamic way. If you nest an Image within a Viewbox, you can replace that image in C# code.
Summary. WPF has strong support for transforming how elements, including controls, pictures and text, are rendered. And Viewbox is another way we exploit these capabilities.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on Sep 29, 2022 (edit).
© 2007-2022 sam allen.
see site info on the changelog.