VB のたまご

作成日: 2017/03/05, 更新日: 2017/03/05



ViewBox

    イメージ
  •  ViewBox は、内部に配置したコントロールの縮小拡大とその方法を提供するコントロールです。 とりあえずどういう風に動くのか見てみましょう。 以下サンプルです。「ViewBoxWindow1」という画面で作成していますが、「MainWindow」に書いても構いません。

  • スポンサーリンク


    <Window x:Class="ViewBoxWindow1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:w03_ContainerControls"
            mc:Ignorable="d"
            Title="ViewBoxWindow1" Height="500" Width="300">
        
        <StackPanel>
    
            <Viewbox Width="150" Height="100" Stretch="None">
                <Button Content="Stretch=None" />
            </Viewbox>
    
            <Viewbox Width="150" Height="100" Stretch="Fill">
                <Button Content="Stretch=Fill" />
            </Viewbox>
    
            <Viewbox Width="150" Height="100" Stretch="Uniform">
                <Button Content="Stretch=Uniform" />
            </Viewbox>
    
            <Viewbox Width="150" Height="100" Stretch="UniformToFill">
                <Button Content="Stretch=UniformToFill" />
            </Viewbox>
            
        </StackPanel>
        
    </Window>
    

  •  ただ単純に拡大するのではなく変形方法として Stretch に値を設定します。 値は、「None」、「Fill」、「Uniform」、「UniformToFill」の4パターン設定できます。

  •  None は、現在のコントロールサイズそのままです。 Fill は、広げられるだけ広げたサイズに変換します。 UniForm は、コントロールのサイズ比率を維持したまま、かつ全体を表示できるサイズを維持しつつ、広げられるだけ広げたサイズに変換します。 UniFormToFill は、コントロールのサイズ比率を維持したまま、広げられるだけ広げたサイズに変換します。

  • スポンサーリンク


  •  今度は縮小した場合です。 ボタンサイズが ViewBox のサイズに縮小されているだけではなく、文字サイズも縮小されていることがわかります。 また縮小していない1つ目のボタンの他、Stretch が UniformToFill にした4つ目のボタンは、縮小しても見切れていることが分かります。

  • <Window x:Class="ViewBoxWindow2"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:w03_ContainerControls"
            mc:Ignorable="d"
            Title="ViewBoxWindow2" Height="500" Width="300">
        
        <StackPanel>
    
            <Viewbox Width="200" Height="120"
                     Stretch="None" StretchDirection="DownOnly">
                <Button Content="Stretch=None" Width="300" Height="200" />
            </Viewbox>
    
            <Viewbox Width="200" Height="120"
                     Stretch="Fill" StretchDirection="DownOnly">
                <Button Content="Stretch=Fill" Width="300" Height="200" />
            </Viewbox>
    
            <Viewbox Width="200" Height="120"
                     Stretch="Uniform" StretchDirection="DownOnly">
                <Button Content="Stretch=Uniform" Width="300" Height="200" />
            </Viewbox>
    
            <Viewbox Width="200" Height="120"
                     Stretch="UniformToFill" StretchDirection="DownOnly">
                <Button Content="Stretch=UniformToFill" Width="300" Height="200" />
            </Viewbox>
            
        </StackPanel>
        
    </Window>