WrapPanel コントロール

Last Updated 2011/09/21


TextBox コントロールで長いテキストを折り返すことを "wrap" といいますが、WrapPanel コントロールは子要素を wrap 可能にするコントロールです。


WrapPanel コントロールの機能は下図を見てのとおりです。下はフォームの幅を広げたものですが、Button4 が上の段に移動していますね。要するに、フォームの幅が広がったことで、もう一つの要素が格納可能になったので、自動的に要素を移動したというわけです。

WrapPanel

<Window x:Class="TextBoxTest.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Windo1" Height="135" Width="300">

  <WrapPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left"
             ItemWidth="75" ItemHeight="30">
    <Button Width="75">Button 1</Button>
    <Button Width="75">Button 2</Button>
    <Button Width="75">Button 3</Button>
    <Button Width="75">Button 4</Button>
  </WrapPanel>

</Window>

WrapPanel クラスには重要なプロパティが 3 つあります。

ItemWidth および ItemHeight プロパティはすべての子要素の幅と高さを指定するものです。デフォルトはともに double.NaN(XAML 構文では "Auto")ですが、この場合は子要素に必要な幅と高さになります。Button コントロールであれば、コンテンツ(上記の例ではキャプション)を表示するに十分なサイズですね。

Orientation プロパティは "wrap" する方向を指定します。Orienatation.Horizontal か Orientation.Vertical のどちらかを指定します。

なお、WrapPanel コントロールは Menu コントロールのトップレベルメニュー、TabControl コントロールのタブ、ツールバーコントロールのツールボタンをレイアウトするために使っています。

−以上−