在Windows应用商店应用中的DataTemplate内将TextBlock宽度设置为100%

时间:2014-11-03 06:55:59

标签: wpf windows-8 windows-store-apps winrt-xaml

我有这个XAML并且网格宽度有问题。

<DataTemplate x:Key="FormTileItemTemplate">
    <Grid Height="70" Background="#FFECECEC">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="38" />
        </Grid.ColumnDefinitions>
        <StackPanel Margin="10,0,20,15" VerticalAlignment="Bottom">
            <TextBlock Text="{Binding FormName}" Foreground="Black" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="0" FontSize="34.667" FontWeight="Light" LineHeight="32" />
        </StackPanel>
        <Grid Grid.Column="1">
            <Image Stretch="UniformToFill" Source="/Assets/Images/FormCompleteRed.png" />
        </Grid>
    </Grid>
</DataTemplate>

<Grid x:Name="itemFormsGrid" Margin="0,60,0,50">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <Image Grid.Column="0" Margin="0,0,20,0" Width="100" Height="100" Source="/Assets/Images/session-forms.png" Stretch="UniformToFill" HorizontalAlignment="Right" />

    <ListView 
        x:Name="formListView"
        Grid.Row="1"
        IsSwipeEnabled="False"
        ItemsSource="{Binding}"
        ItemTemplate="{StaticResource FormTileItemTemplate}"
        d:DataContext="{Binding Path=SessionForms, Source={d:DesignInstance Type=SampleData:SessionReviewDesignDataSource, IsDesignTimeCreatable=True} }" 
        Margin="0,20,0,0" />
</Grid>

这是输出。 Output

但是我需要TextBlock向上伸展到右边。感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

设置HorizontalContentAlignment属性,如下所示,以展开ListViewItems

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ListView.ItemContainerStyle>