Como: Size a ListBoxItem to Fill the ListBox
Controla o tamanho de forma diferente dentro de contêineres. Por exemplo, um Button em um StackPanel é dimensionado pela largura toda do StackPanel, mas um Button em um ListBox é dimensionado pelo conteúdo do Button. Se você desejar que os controles Button em uma ListBox sejam alongados para preencher o espaço disponível, você precisará criar um estilo para alongar um ListBoxItem e aplicar o estilo ao ItemContainerStyle da ListBox. O exemplo a seguir demonstra como fazer isso.
Exemplo
Dim style As Style = New Style()
style.Setters.Add(New Setter(ListBoxItem.HorizontalContentAlignmentProperty, _
HorizontalAlignment.Stretch))
Dim lb As ListBox = New ListBox()
lb.ItemContainerStyle = style
Dim lbi1 As ListBoxItem = New ListBoxItem()
Dim btn As Button = New Button()
btn.Content = "Button as styled list box item."
lbi1.Content = (btn)
lb.Items.Add(lbi1)
Style style = new Style(typeof(ListBoxItem));
style.Setters.Add(new Setter(ListBoxItem.HorizontalContentAlignmentProperty,
HorizontalAlignment.Stretch));
ListBox lb = new ListBox();
lb.ItemContainerStyle = style;
ListBoxItem lbi1 = new ListBoxItem();
Button btn = new Button();
btn.Content = "Button as styled list box item.";
lbi1.Content = (btn);
lb.Items.Add(lbi1);