方法: Viewbox のコンテンツに Stretch プロパティを適用する
例
この例では、Viewbox の StretchDirection プロパティと Stretch プロパティの値を変更する方法を示します。
最初の例では Extensible Application Markup Language (XAML) を使用して Viewbox 要素を定義します。 400 の MaxWidth と MaxHeight が割り当てられます。 この例では、Viewbox 内に Image 要素を入れ子にしています。 Stretch および StretchDirection の列挙体のプロパティ値に対応する Button 要素により、入れ子になった Image の伸縮動作の操作が行われます。
<StackPanel Margin="0,0,0,10" 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>
</StackPanel>
<StackPanel Margin="0,0,0,10" HorizontalAlignment="Center" Orientation="Horizontal" DockPanel.Dock="Top">
<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="tulip_farm.jpg"/>
</Viewbox>
</StackPanel>
次の分離コード ファイルは、前の XAML の例が定義している Button Click イベントを処理します。
private void stretchNone(object sender, RoutedEventArgs e)
{
vb1.Stretch = System.Windows.Media.Stretch.None;
txt1.Text = "Stretch is now set to None.";
}
private void stretchFill(object sender, RoutedEventArgs e)
{
vb1.Stretch = System.Windows.Media.Stretch.Fill;
txt1.Text = "Stretch is now set to Fill.";
}
private void stretchUni(object sender, RoutedEventArgs e)
{
vb1.Stretch = System.Windows.Media.Stretch.Uniform;
txt1.Text = "Stretch is now set to Uniform.";
}
private void stretchUniFill(object sender, RoutedEventArgs e)
{
vb1.Stretch = System.Windows.Media.Stretch.UniformToFill;
txt1.Text = "Stretch is now set to UniformToFill.";
}
private void sdUpOnly(object sender, RoutedEventArgs e)
{
vb1.StretchDirection = System.Windows.Controls.StretchDirection.UpOnly;
txt2.Text = "StretchDirection is now UpOnly.";
}
private void sdDownOnly(object sender, RoutedEventArgs e)
{
vb1.StretchDirection = System.Windows.Controls.StretchDirection.DownOnly;
txt2.Text = "StretchDirection is now DownOnly.";
}
private void sdBoth(object sender, RoutedEventArgs e)
{
vb1.StretchDirection = System.Windows.Controls.StretchDirection.Both;
txt2.Text = "StretchDirection is now Both.";
}
Private Sub stretchNone(ByVal sender As Object, ByVal args As RoutedEventArgs)
vb1.Stretch = System.Windows.Media.Stretch.None
txt1.Text = "Stretch is now set to None."
End Sub
Private Sub stretchFill(ByVal sender As Object, ByVal args As RoutedEventArgs)
vb1.Stretch = System.Windows.Media.Stretch.Fill
txt1.Text = "Stretch is now set to Fill."
End Sub
Private Sub stretchUni(ByVal sender As Object, ByVal args As RoutedEventArgs)
vb1.Stretch = System.Windows.Media.Stretch.Uniform
txt1.Text = "Stretch is now set to Uniform."
End Sub
Private Sub stretchUniFill(ByVal sender As Object, ByVal args As RoutedEventArgs)
vb1.Stretch = System.Windows.Media.Stretch.UniformToFill
txt1.Text = "Stretch is now set to UniformToFill."
End Sub
Private Sub sdUpOnly(ByVal sender As Object, ByVal args As RoutedEventArgs)
vb1.StretchDirection = System.Windows.Controls.StretchDirection.UpOnly
txt2.Text = "StretchDirection is now UpOnly."
End Sub
Private Sub sdDownOnly(ByVal sender As Object, ByVal args As RoutedEventArgs)
vb1.StretchDirection = System.Windows.Controls.StretchDirection.DownOnly
txt2.Text = "StretchDirection is now DownOnly."
End Sub
Private Sub sdBoth(ByVal sender As Object, ByVal args As RoutedEventArgs)
vb1.StretchDirection = System.Windows.Controls.StretchDirection.Both
txt2.Text = "StretchDirection is now Both."
End Sub
参照
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback