我正在为Windows Phone 8(silverlight)创建应用程序。我想在列表框的两列中显示数据。我使用this method。在这篇文章中是一个用代码演示的项目。下面是输出的基本代码:ListBoxItem不在ListBox中伸展
<ListBox x:Name="ItemsListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<ItemsControl ItemTemplate="{StaticResource ItemDataTemplate}" ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>
</ListBox.ItemTemplate>
它的工作原理,但数据不伸展,向右是自由空间。
我已经尝试了许多选项
<ListBox...>
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.Resources>
....
插入的HorizontalAlignment = “拉伸”
,但他们没有工作。告诉我如何扩展数据宽度?我需要让每列占据总宽度的一半。
这是代码我的DataTemplate
<DataTemplate x:Key="ItemDataTemplate" >
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Column="1" Margin="5" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding AddInfo}" />
</Grid>
</Button>
</Grid>
</DataTemplate>
我尝试 <工具箱:WrapPanel方向=“横向”的HorizontalAlignment =“拉伸” /> 但这行不通 - 右边是自由空间 – FetFrumos 2014-10-22 13:14:55
@EugenePodskal'UniformGrid'不存在Silverl ight/WP – McGarnagle 2014-10-22 17:34:15
你也可以发布你的“ItemDataTemplate”的标记吗?我们需要看看你如何设置它。 – McGarnagle 2014-10-22 17:35:25