Как растянуть ListBoxItem на всю длину ListBox? WPF (Silverlight)

Наверное, у Вас тоже неоднократно возникало желание растянуть содержимое ListBoxItem на всю длину ListBox? Задача простая, но каждый раз (в силу того что сам компонент не очень простой, и у него очень много настроек), когда я пытал "по-быстрому" растянуть содержимое ListBoxItem на всю ширину попытки сводились к очередному поиску примера в интернете. Наверное, это потому, что с этим компонентом, я работаю не часто. Итак, как же это сделать? Допустим, мы имеем следующий вид:

ListBox (WPF)

Согласитесь, выглядит не очень эстетично. Так вот всё что нам потребуется, так это:

  1. Создать стиль в котором установить свойство HorizontalContentAlignment в Stretch.
  2. Установить этот стиль в нашем ListBox.

Наш стиль добавлен в Page.Resource:

<Style
       x:Key="StretchedContainerStyle"
      
TargetType="{x:Type ListBoxItem}">
        <
Setter
          
Property="HorizontalContentAlignment"
          
Value="Stretch" />
    </
Style>

И теперь у ListBox применяем стиль:

<ListBox
          
x:Name="listBox"
          
ItemContainerStyle="{StaticResource StretchedContainerStyle}" />

А вот теперь как выглядит наш контрол:

обновленный ListBox (WPF)

Не то чтобы совсем идеально, но, согласитесь, уже гораздо лучше.

Progg it

Реклама
Как растянуть ListBoxItem на всю длину ListBox? WPF (Silverlight)