xaml - 使文本 block 扩展以填充剩余区域

标签 xaml

我正在努力使用下面的代码来使 ColumnDefinition (336px) 当前的硬编码宽度动态化,以便它填充父级/容器中的所有剩余区域。

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid Height="480" Width="800">
    <ListBox Name="LatestScoresListBox" Margin="9" Background="Black">
        <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="64"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <TextBlock Grid.Column="0" Margin="4" Width="56" Height="56" Text="{Binding Text1}" TextAlignment="Center" TextWrapping="Wrap"/>

            <Grid Grid.Column="1">
                <Grid.RowDefinitions>
                <RowDefinition Height="0.5*"/>
                <RowDefinition Height="0.5*"/>
                </Grid.RowDefinitions>

                <Grid Grid.Row="0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="336"/>
                    <ColumnDefinition Width="48"/>
                </Grid.ColumnDefinitions>

                <TextBlock Grid.Column="0" Margin="4" Text="{Binding Text2}"/>
                <TextBlock Grid.Column="1" Margin="4" Text="{Binding Text3}" TextAlignment="Center"/>
                </Grid>
                <Grid Grid.Row="1">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="336"/>
                    <ColumnDefinition Width="48"/>
                </Grid.ColumnDefinitions>

                <TextBlock Grid.Column="0" Margin="4" Text="{Binding Text4}"/>
                <TextBlock Grid.Column="1" Margin="4" Text="{Binding Text5}" TextAlignment="Center"/>
                </Grid>
            </Grid>
            </Grid>
        </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    </Grid>
</Page>

我尝试不定义宽度,将宽度定义为 1*,在 TextBlock 中定义宽度,也许还有其他东西,但没有任何运气。

从代码中可以看出,父网格的面积是800px减去第一列的64px后的剩余部分。

谁能给我一个线索吗? :|

谢谢

最佳答案

尝试在 ListBox 上设置 Horizo​​ntalContentAlignment="Stretch" 属性。

默认情况下,ListBox 使用左对齐 对齐其所有项目。您必须将其设置为 Stretch 以使 ListBox 允许其项目占据所有可用空间。

关于xaml - 使文本 block 扩展以填充剩余区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4572291/

相关文章:

c# - Xamarin XAML StaticResource 位于另一个资源中

wpf - 代码和 XAMLin WPF 之间的界线在哪里?

c# - Visual Studio 2013 和 C# - 无法添加事件处理程序

c# - 打印多页xaml控件

wpf - XAML - 集合初始值设定项中的静态资源

c# - WinRT 中 ViewModel 层的虚拟化

c# - WinRT 中带包装的 GridView 方向

c# - 每行设置 XAML Datagrid 文本颜色

c# - 更改 ListBox 中所有 ListBoxItem 的样式 (Windows phone 8)

c# - 有什么方法可以在 Xamarin.Forms 中将样式与我的 XAML 分开