アイテムを横に並べるListBoxを作りたいです。各項目は TextBox である必要があり、テキストの量に関係なくリスト ボックスを垂直方向に埋める必要があります。Tweetdeck を使用したことがある場合は、同様の効果を目指しています。これが私が持っているものです:
<ListBox
Background ="DarkGray"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ItemsSource="{Binding Path=Items}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel IsItemsHost="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Gray" BorderThickness="2" CornerRadius="5" Margin="2,0,2,0">
<Grid Width="250">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Stretch"
Text="{Binding Path=Messages, Mode=OneWay}" />
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
何が起こるかというと、TextBox はテキストを垂直方向に引き伸ばすのではなく、頑固にその中に収まります。DockPanel のグリッドを切り替えてみましたが、役に立ちませんでした。TextBox の Height プロパティをバインドすることはできましたが、それは不快に思えます。
私が見逃したトリックはありますか?