Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Programmatically change the Stretch and StretchDirection of content within a Viewbox

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     x:Class="Viewbox_Stretch_Layout_Samp.Window1"     Title="ViewBox Stretch and StretchDirection Sample">   <DockPanel Background="White">         <StackPanel HorizontalAlignment="Center" Orientation="Horizontal" DockPanel.Dock="Top">             <Button Name="btn1" Click="stretchNone">Stretch="None"</Button>             <Button Name="btn2" Click="stretchFill">Stretch="Fill"</Button>             <Button Name="btn3" Click="stretchUni">Stretch="Uniform"</Button>             <Button Name="btn4" Click="stretchUniFill">Stretch="UniformToFill"</Button>             <Button Name="btn5" Click="sdUpOnly">StretchDirection="UpOnly"</Button>             <Button Name="btn6" Click="sdDownOnly">StretchDirection="DownOnly"</Button>             <Button Name="btn7" Click="sdBoth">StretchDirection="Both"</Button>          </StackPanel>                          <TextBlock DockPanel.Dock="Top" Name="txt1" />         <TextBlock DockPanel.Dock="Top" Name="txt2" />                  <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">             <Viewbox MaxWidth="500" MaxHeight="500" Name="vb1">                 <Image Source="c:\image.jpg"/>             </Viewbox>             </StackPanel>   </DockPanel> </Window> //File:Window.xaml.vb Imports System Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Documents Namespace Viewbox_Stretch_Layout_Samp   Public Partial Class Window1     Inherits Window     Public Sub stretchNone(sender As Object, e As RoutedEventArgs)       vb1.Stretch = System.Windows.Media.Stretch.None       txt1.Text = "Stretch is now set to None."     End Sub     Public Sub stretchFill(sender As Object, e As RoutedEventArgs)       vb1.Stretch = System.Windows.Media.Stretch.Fill       txt1.Text = "Stretch is now set to Fill."     End Sub     Public Sub stretchUni(sender As Object, e As RoutedEventArgs)       vb1.Stretch = System.Windows.Media.Stretch.Uniform       txt1.Text = "Stretch is now set to Uniform."     End Sub     Public Sub stretchUniFill(sender As Object, e As RoutedEventArgs)       vb1.Stretch = System.Windows.Media.Stretch.UniformToFill       txt1.Text = "Stretch is now set to UniformToFill."     End Sub     Public Sub sdUpOnly(sender As Object, e As RoutedEventArgs)       vb1.StretchDirection = System.Windows.Controls.StretchDirection.UpOnly       txt2.Text = "StretchDirection is now UpOnly."     End Sub     Public Sub sdDownOnly(sender As Object, e As RoutedEventArgs)       vb1.StretchDirection = System.Windows.Controls.StretchDirection.DownOnly       txt2.Text = "StretchDirection is now DownOnly."     End Sub     Public Sub sdBoth(sender As Object, e As RoutedEventArgs)       vb1.StretchDirection = System.Windows.Controls.StretchDirection.Both       txt2.Text = "StretchDirection is now Both."     End Sub   End Class End Namespace