Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Проблема с ListBox


Автор: Bonus 4.6.2009, 12:27
Есть вот такой ListBox
Код

<ListBox x:Name="files" HorizontalContentAlignment="Stretch" ItemsSource="{Binding}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Background="LightPink">
                <TextBlock Text="{Binding}"/>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

мне нужно, чтобы Grid растягивался на всю ширину ListBox'а, как это сделать? свойство ListBox.HorizontalContentAligment не помогло.

Автор: Partizan 4.6.2009, 14:10
Bonus, надо у грида ContentAlignment выставлять...

Автор: Bonus 4.6.2009, 14:23
Нету у него такого свойства. smile А Grid.HorizontalAlignment="Stretch" не помогает, грид растягивается только на длину текста, а не на всю длину ListBox'а.

Автор: Idsa 4.6.2009, 14:53
Сталкивался с подобной задачей... и мои попытки поиграться с Alignment также не увенчались успехом: грид занимает ровно столько места, сколько ему нужно - и хоть ты тресни. Буду рад увидеть красивое решение, ну а пока приведу свое: свойству Width грида приписываем баиндинг:
Код

Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ItemsPresenter}}}"

Автор: KelTron 4.6.2009, 15:30
У меня работает код из первого поста, грид растягивается...может я чего не правильно делаю)

Автор: Bonus 4.6.2009, 19:54
Idsa 
Я пишу под Silverlight, там нет RelativeSource

Автор: Bonus 10.6.2009, 12:50
Друзья, проблема актуальна. Сильверлайтовский ListBox не дает растягивать Grid на всю ширину самого ListBox'а, если в этом гриде есть TextBlock. Т.е. Grid сжимается до размеров текста.
Как это можно обойти?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)