Xaml 如何在ListView UWP中动态更改ItemTemplate的宽度和高度?

Xaml 如何在ListView UWP中动态更改ItemTemplate的宽度和高度?,xaml,win-universal-app,windows-10-universal,Xaml,Win Universal App,Windows 10 Universal,我有一个这样的列表视图 <ListView Name="lvTrailers" Grid.Row="3" SelectionChanged="lvTrailers_SelectionChanged" SizeChanged="lvTrailers_SizeChanged"> <ListView.ItemTemplat

我有一个这样的列表视图

<ListView Name="lvTrailers"
                      Grid.Row="3"
                      SelectionChanged="lvTrailers_SelectionChanged"
                      SizeChanged="lvTrailers_SizeChanged">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid Height="65" Margin="5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="2.5*" />
                            </Grid.ColumnDefinitions>
                            <Image HorizontalAlignment="Center"
                                   VerticalAlignment="Center"
                                   Source="{Binding Thumbnail}"
                                   Stretch="UniformToFill" />
                            <TextBlock Grid.Column="1"
                                       Margin="10,5"
                                       Text="{Binding Title}"
                                       TextWrapping="Wrap" />
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

    private void lvTrailers_SizeChanged(object sender, SizeChangedEventArgs e)
    {
         // add some userful code

        // not working
        lvTrailers.ItemTemplate.SetValue(HeightProperty, e.NewSize.Height / 6);

    }

私有void lvu SizeChanged(对象发送方,sizechangedventargs e)
{
//添加一些用户代码
//不起作用
lvtrailes.ItemTemplate.SetValue(HeightProperty,e.NewSize.Height/6);
}
在UWP应用程序中,用户可以调整窗口的高度和宽度,所以当出现这种情况时,我也想动态调整ListView ItemTemplate的大小。有人能告诉我怎么做吗?

你需要使用。以下是实现这一目标的示例:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.Resources>
        <DataTemplate x:Key="MyCustomItemDataTemplate">
            <UserControl>
                <Grid x:Name="content"
                      Margin="8"
                      Background="Transparent">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="2.5*" />
                    </Grid.ColumnDefinitions>

                    <Image HorizontalAlignment="Center"
                           VerticalAlignment="Center"
                           Source="ms-appx:///Assets/StoreLogo.png"
                           Stretch="Uniform" />

                    <TextBlock Grid.Column="1"
                               Margin="10,5"
                               Text="blabla"
                               VerticalAlignment="Center"
                               TextWrapping="Wrap" />

                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup>
                            <VisualState x:Name="Small">
                                <VisualState.StateTriggers>
                                    <AdaptiveTrigger MinWindowWidth="0" />
                                </VisualState.StateTriggers>
                                <VisualState.Setters>
                                    <Setter Target="content.Height"
                                            Value="30" />
                                </VisualState.Setters>
                            </VisualState>
                            <VisualState x:Name="Wide">
                                <VisualState.StateTriggers>
                                    <AdaptiveTrigger MinWindowWidth="720" />
                                </VisualState.StateTriggers>
                                <VisualState.Setters>
                                    <Setter Target="content.Height"
                                            Value="Auto" />
                                </VisualState.Setters>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                </Grid>
            </UserControl>
        </DataTemplate>
    </Grid.Resources>

    <ListView Name="items"
              ItemTemplate="{StaticResource MyCustomItemDataTemplate}" />
</Grid>

您需要使用。以下是实现这一目标的示例:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.Resources>
        <DataTemplate x:Key="MyCustomItemDataTemplate">
            <UserControl>
                <Grid x:Name="content"
                      Margin="8"
                      Background="Transparent">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="2.5*" />
                    </Grid.ColumnDefinitions>

                    <Image HorizontalAlignment="Center"
                           VerticalAlignment="Center"
                           Source="ms-appx:///Assets/StoreLogo.png"
                           Stretch="Uniform" />

                    <TextBlock Grid.Column="1"
                               Margin="10,5"
                               Text="blabla"
                               VerticalAlignment="Center"
                               TextWrapping="Wrap" />

                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup>
                            <VisualState x:Name="Small">
                                <VisualState.StateTriggers>
                                    <AdaptiveTrigger MinWindowWidth="0" />
                                </VisualState.StateTriggers>
                                <VisualState.Setters>
                                    <Setter Target="content.Height"
                                            Value="30" />
                                </VisualState.Setters>
                            </VisualState>
                            <VisualState x:Name="Wide">
                                <VisualState.StateTriggers>
                                    <AdaptiveTrigger MinWindowWidth="720" />
                                </VisualState.StateTriggers>
                                <VisualState.Setters>
                                    <Setter Target="content.Height"
                                            Value="Auto" />
                                </VisualState.Setters>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                </Grid>
            </UserControl>
        </DataTemplate>
    </Grid.Resources>

    <ListView Name="items"
              ItemTemplate="{StaticResource MyCustomItemDataTemplate}" />
</Grid>