我有以下頁面設置,其中包含具有兩列的網格視圖:圖像和標題。並不是所有的行都有圖像,我試圖將圖像放在行寬的一半。因此,對於沒有圖像可用的行,文本應填充整行,而具有圖像的行可在行的一半處顯示圖像 ,該行的其餘部分爲標題。UWP GridView在更改大小時調整一列的大小
我已經使用MathConverter將imageWidth調整爲行的實際寬度的一半,但在調整大小時(在桌面上調整主窗口大小時,在更改設備方向時在電話/平板電腦上)圖像大小未更新。
<Page.Resources>
<local:MathConverter x:Key="MathConverter"/>
<ItemsPanelTemplate x:Key="Compact">
<ItemsStackPanel/>
</ItemsPanelTemplate>
<DataTemplate x:Key="LargeWidthDataTemplate">
<Border BorderThickness="0,0,0,1" HorizontalAlignment="Stretch">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{Binding ImageURL}" MaxWidth="{Binding ActualWidth, ElementName=gridView, Converter={StaticResource MathConverter}}" Margin="4"/>
<TextBlock Grid.Column="1" Text="{Binding Title}"
Loaded="TextBlock_Loaded" HorizontalAlignment="Stretch" TextAlignment="Left" TextWrapping="WrapWholeWords"/>
</Grid>
</Border>
</DataTemplate>
</Page.Resources>
<Grid>
<GridView x:Name="gridView" Grid.Row="2" SizeChanged="gridView_SizeChanged"
ItemsPanel="{StaticResource Compact}" ItemTemplate="{StaticResource LargeWidthDataTemplate}">
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
</GridView.ItemContainerStyle>
</GridView>
</Grid>