Last Updated 2011/09/21
TextBox コントロールで長いテキストを折り返すことを "wrap" といいますが、WrapPanel コントロールは子要素を wrap 可能にするコントロールです。
WrapPanel コントロールの機能は下図を見てのとおりです。下はフォームの幅を広げたものですが、Button4 が上の段に移動していますね。要するに、フォームの幅が広がったことで、もう一つの要素が格納可能になったので、自動的に要素を移動したというわけです。
<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 コントロールのタブ、ツールバーコントロールのツールボタンをレイアウトするために使っています。
−以上−