Вы можете сделать это, используя свойство ListBox.ItemContainerStyle. Очень хорошее объяснение этому можно найти здесь . Основываясь на этом примере, мы можем установить для ItemContainterStyle прозрачный фоновый цвет, а затем обернуть ListBox в рамку (ListBox не отображает цвет фона).
<Border Background="Green">
<ListBox Background="Red">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Background" Value="Transparent"/>
</Style>
</ListBox.ItemContainerStyle>
<TextBlock Text="Hello" />
<TextBlock Text="Goodbye" />
</ListBox>
</Border>
Если вы просто хотите установить фактические элементы, вы можете установить реальный цвет фона, а затем пропустить границу.