ListBox中的ListBoxItem无法拉伸

3
我正在为Windows Phone 8(silverlight)创建一个应用程序。我想在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>

英译中:

....

插入的水平对齐="拉伸"

但它们不起作用。告诉我如何拉伸数据宽度?我需要让每一列占据总宽度的一半。

这是我的 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>

我尝试使用<toolkit:WrapPanel Orientation="Horizontal" HorizontalAlignment="Stretch"/>,但是它不起作用 - 右侧是空闲空间。 - FetFrumos
@EugenePodskal UniformGrid在Silverlight/WP中不存在。 - McGarnagle
你能否也发布一下你的“ItemDataTemplate”的标记?我们需要看看你是如何设置它的。 - McGarnagle
我在问题中添加了ItemDataTemplate代码。 - FetFrumos
1个回答

0
在您的数据模板中,对于垂直拉伸应添加Height="100%",对于水平拉伸应添加Width="100%",这是在TextBlock内部完成的。
</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>

我确实需要一个非固定宽度。 - FetFrumos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接