0

我有以下 xaml:

    <DataTemplate x:Key="ActivityStreamItemTemplate">
        <StackPanel VerticalAlignment="Top" Margin="5,0,0,0">
            <Button Command="{Binding Path=DataContext.LoadSpacesCommand, ElementName=OrganisationList}" CommandParameter="{Binding}" Padding="-5,0,-5,-5" Margin="-7,-12,-7,-7" Height="auto" BorderThickness="0" HorizontalAlignment="Left" VerticalAlignment="Stretch" HorizontalContentAlignment="Left" UseLayoutRounding="True" FontSize="0.01">
                <Grid Height="auto">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="67" />
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="67" />
                    </Grid.ColumnDefinitions>
                    <StackPanel Height="auto" Grid.Column="0" Background="Transparent">
                        <Border Background="Transparent" BorderThickness="0" Width="62" Height="62" HorizontalAlignment="Left" Margin="0,0,0,5">
                            <Image Source="{Binding created_by.image.link}" Width="62" Height="62"></Image>
                        </Border>
                    </StackPanel>
                    <StackPanel Height="auto" Grid.Column="1">
                        <TextBlock Text="{Binding type}" HorizontalAlignment="Left" FontSize="30" VerticalAlignment="Center" Margin="0,0,0,5" Foreground="White" />
                        <TextBlock Text="{Binding ttitle}" HorizontalAlignment="Left" FontSize="15" VerticalAlignment="Center" Margin="0,0,0,5" Foreground="White" TextWrapping="Wrap" MaxWidth="Infinity" />
                        <TextBlock Text="{Binding created_by.name}" HorizontalAlignment="Left" FontSize="11" VerticalAlignment="Center" Margin="0,0,0,5" Foreground="White" />
                    </StackPanel>
                    <StackPanel Height="auto" Grid.Column="2">
                        <TextBlock Text="{Binding comment_count}"></TextBlock>
                    </StackPanel>
                </Grid>
            </Button>
        </StackPanel>
    </DataTemplate>

如您所见,我希望将网格的第一列设置为 67 .. 完美,并且工作正常...

下一列需要尽可能多地填充屏幕减去它之后的额外列宽度。

我该怎么做呢?

有点链接到这个:如何在宽度自动列内 TextWrap 一个 TextBlock?但我无法让 * 工作......我不确定它是否真的能完成我需要它做的事情

4

1 回答 1

0

这是因为你有:

MaxWidth="Infinity"

在您的 TextBlock 和

<ColumnDefinition Width="Auto"/>

在你的专栏上。

这意味着 XAML 认为它可以尽可能多地增加该列以适应文本。

如果您希望文本换行,则必须对列的宽度、网格的宽度或堆栈面板的宽度进行限制。

如果您希望中间列占用剩余空间,则只需使用 a 指定它的宽度*

<ColumnDefinition Width="*"/>
于 2013-10-19T14:43:11.293 回答