3

アイテムを横に並べる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 プロパティをバインドすることはできましたが、それは不快に思えます。

私が見逃したトリックはありますか?

4

1 に答える 1

5

VerticalContentAlignment="Stretch"ListBoxに設定する必要があります。

于 2012-07-12T16:17:39.490 に答える