Programmatically change the Stretch and StretchDirection of content within a Viewbox
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="Viewbox_Stretch_Layout_Samp.Window1" Title="ViewBox Stretch and StretchDirection Sample">
//File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; namespace Viewbox_Stretch_Layout_Samp { public partial class Window1 : Window { public void stretchNone(object sender, RoutedEventArgs e) { vb1.Stretch = System.Windows.Media.Stretch.None; txt1.Text = "Stretch is now set to None."; } public void stretchFill(object sender, RoutedEventArgs e) { vb1.Stretch = System.Windows.Media.Stretch.Fill; txt1.Text = "Stretch is now set to Fill."; } public void stretchUni(object sender, RoutedEventArgs e) { vb1.Stretch = System.Windows.Media.Stretch.Uniform; txt1.Text = "Stretch is now set to Uniform."; } public void stretchUniFill(object sender, RoutedEventArgs e) { vb1.Stretch = System.Windows.Media.Stretch.UniformToFill; txt1.Text = "Stretch is now set to UniformToFill."; } public void sdUpOnly(object sender, RoutedEventArgs e) { vb1.StretchDirection = System.Windows.Controls.StretchDirection.UpOnly; txt2.Text = "StretchDirection is now UpOnly."; } public void sdDownOnly(object sender, RoutedEventArgs e) { vb1.StretchDirection = System.Windows.Controls.StretchDirection.DownOnly; txt2.Text = "StretchDirection is now DownOnly."; } public void sdBoth(object sender, RoutedEventArgs e) { vb1.StretchDirection = System.Windows.Controls.StretchDirection.Both; txt2.Text = "StretchDirection is now Both."; } } }