我與ItemsPanelTemplate一個列表框設置爲UniformGrid與行數= 6和cols = 7WPF - 爲什麼列表框項目不填uniformgrid
我想在列表框中的項目,以填補他們的空間。
我正在使用字典中定義的數據完成。
我的模板的外部控制是HorizontalAlignment = Stretch 和VerticalAlignent = Strectch的邊框,但模板不會填充列表框項目空間?
任何想法? 馬爾科姆
我與ItemsPanelTemplate一個列表框設置爲UniformGrid與行數= 6和cols = 7WPF - 爲什麼列表框項目不填uniformgrid
我想在列表框中的項目,以填補他們的空間。
我正在使用字典中定義的數據完成。
我的模板的外部控制是HorizontalAlignment = Stretch 和VerticalAlignent = Strectch的邊框,但模板不會填充列表框項目空間?
任何想法? 馬爾科姆
編輯:增加了額外的信息,並回答了問題。
一個有趣的方式讓ListBoxItems
均勻與其他項目是對Grid
的共享範圍功能,在您的DataTemplate
例子:
<ItemsControl Grid.IsSharedSizeScope="True" ItemsSource="{Binding Path=Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Content"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="{Binding Path=Name}">
</Grid>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
現在所有的TextBlocks
將在相同大小的佈局。如果沒有設置特定的寬度/高度,子項目應該填充所有可用空間。
或者,您可以設置控件的寬度和高度來拉伸,但我認爲使用Grid.SharedScopeSize是獲得同樣效果的更優雅的方法。
回答此問題可將HorizontalContentAligment和VerticalContentAlignment設置爲在LISTBOX而不是數據模板上拉伸。
您能否提供樣品XAML? – huseyint 2008-12-30 08:13:29