Растянуть TextBlock на всю ячейку grid WPF

176
25 февраля 2019, 23:30

У меня есть ListBox, в котором каждый Item представляет собой Grid из трех колонок. Первая и последняя колонка имеют ширину 50, а в средней лежит TextBlock, который должен растягиваться по оставшейся ширине ListBox. Как это можно сделать? Пробовал ставить в ListBox HorizontalAlignment="Stretch" однако ноль результата, а ставить фиксированную ширину у TextBlock я не хочу по понятным причинам. Вот весь код:

<ListBox HorizontalAlignment="Stretch" x:Name="tracksList" Grid.Row="3" Grid.Column="2">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Height="50" Margin="0 2 0 2" Background="Green">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="50"></ColumnDefinition>
                    <ColumnDefinition></ColumnDefinition>
                    <ColumnDefinition Width="50"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <TextBlock HorizontalAlignment="Stretch" Background="SeaGreen" Text="{Binding Path=fn}" Grid.Column="1"></TextBlock>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Может надо как-то подшаманить с DataTemplate, жду ваших предложений.

Answer 1

Установите у вашего ListBox свойство HorizontalContentAlignment="Stretch"
До:

После:

READ ALSO
Правильно ли выполняется проверка на то что флаги совпадают?

Правильно ли выполняется проверка на то что флаги совпадают?

Имеется E'нумератор помеченный аттрибутом [Flags]:

170
Сборка проекта для .NET и .NET Core

Сборка проекта для .NET и .NET Core

При написании библиотеки, код которой валиден как дляNET Framework, так и для

181
Внедрение через конструктор

Внедрение через конструктор

Изучаю внедрение зависимостей, появился вопросМожет ли быть такое что два класса зависят друг от друга как в примере ниже

166