Как сделать элемент списка горизонтально расширенным?

Вот окно с простым списком:

Код прост:

<Window x:Class="Wpf_List.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>


        <Border BorderBrush="Black" BorderThickness="2" Grid.Column="1">
            <ListBox>
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <!--HorizontalAlignment="Stretch" below has no effect :(-->
                        <Border CornerRadius="5" BorderBrush="DarkRed" SnapsToDevicePixels="True" BorderThickness="1"
                            Margin="1" Padding="4,2"
                            HorizontalAlignment="Stretch"
                            >
                            <TextBlock Text="{Binding}"/>
                        </Border>
                    </DataTemplate>
                </ListBox.ItemTemplate>

                <sys:String>First</sys:String>
                <sys:String>Second</sys:String>
                <sys:String>Some item with a long name</sys:String>
            </ListBox>
        </Border>
    </Grid>
</Window>

Ширина каждого объекта отличается. Похож "Автоматический". Я попробовал различные пути, но не сделал нашел, что заставил объекты расширить горизонтально без жесткого кодирования ширину.

Как делают меня?

7
задан Community 8 February 2017 в 14:21
поделиться

1 ответ

ListBox имеет свойство с именем HorizontalContentAlignment . Думаю, установка на Stretch поможет. Хотя, если вы повторно шаблонизируете ListBox и / или измените его ItemContainerStyle , убедитесь, что значение этого свойства применяется там, где это необходимо (через TemplateBinding s).

14
ответ дан 6 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: