ListView, last time I tried to figure it out myself for 15 minutes and failed again. As in previous times, I found the answer some time after googling, so I decided to post the solution here in order not to forget again.To summarize, the trick is to set
ListViewItem.HorizontalContentAlignment
(or the one of ListBoxItem whichever you need) to Stretch. The problem is that you probably want to use databinding (and that's the right way), so that every ListViewItem (or ListBoxItem) is virtualized under the hood. You can use styles.The code:
<Window x:Class="StretchDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Stretch demo" Height="260" Width="250" Loaded="Window_Loaded" > <ListBox x:Name="lbMain"> <ListBox.Style> <Style> <Setter Property="ListBoxItem.HorizontalContentAlignment" Value="Stretch" /> </Style> </ListBox.Style> <ListBox.ItemTemplate> <DataTemplate> <Label Background="Yellow" Content="{Binding}"/> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Window>
| Before: | After: | 
|  |  | 
 
 
No comments:
Post a Comment