我正在为Windows Phone 8(silverlight)创建一个应用程序。我想在ListBox中的两列中显示数据。我使用this method。在本文中是一个包含代码的演示项目。以下是输出的基本代码:
<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 =“Stretch”
但它们不起作用。告诉我如何拉伸数据宽度?我需要让每列占据总宽度的一半。
这是我的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>
答案 0 :(得分:0)
在您的数据模板中,您应该添加高度=&#34; 100%&#34;对于垂直拉伸或宽度=&#34; 100%&#34;用于水平拉伸 这是在文本块中
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}" Height="//some vale in decimal" Widht="//some vale in decimal" />
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding AddInfo}" Height="//some vale in decimal" Widht="//some vale in decimal" />
</Grid>