问题从我启动应用程序的那一刻开始出现。
主页包含ffimageloadingsvg:SvgCachedImage元素的两列列表视图,它们的作用类似于按钮。
我将url字符串绑定到ffimageloadingsvg:SvgCachedImage元素,因此我不应该将图像下载到应用程序。图片可能会改变。
数据绑定工作得很好,问题在于ffimageloadingsvg:SvgCachedImage元素直到我开始导航并返回主页或旋转设备后才呈现。
所以我有这段代码:
False
在视图模型代码中,我仅使用一个变量进行数据绑定,一个变量填充了列表视图。
<ListView AbsoluteLayout.LayoutBounds="0,1,1,0.94" AbsoluteLayout.LayoutFlags="All"
ItemsSource="{Binding ModelPairs}" HasUnevenRows="True"
SeparatorVisibility="None" SelectionMode="None">
<!--BindingContext here is ModelPair, which has Item1 and Item2-->
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<!--Two-column grid-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!--Left column - BindingContext set to ModelPair.Item1-->
<ffimageloadingsvg:SvgCachedImage Grid.Column="0"
Margin="5" Aspect="AspectFit" CacheType="All"
BindingContext="{Binding Item1}" Source="{Binding ImgSvg}">
<ffimageloadingsvg:SvgCachedImage.Transformations>
<fftransformations:CornersTransformation
CornersTransformType="AllRounded"
BottomLeftCornerSize="15" BottomRightCornerSize="15"
TopLeftCornerSize="15" TopRightCornerSize="15"
/>
</ffimageloadingsvg:SvgCachedImage.Transformations>
</ffimageloadingsvg:SvgCachedImage>
<customs:CustomLabelRenderer Grid.Column="0"
BindingContext="{Binding Item1}" Text="{Binding Title}"
Style="{StaticResource LblOuterLayout}" VerticalOptions="Center"
HorizontalOptions="Center" HorizontalTextAlignment="Center"
VerticalTextAlignment="Center"/>
<!--Right column - BindingContext set to ModelPair.Item2-->
<ffimageloadingsvg:SvgCachedImage Grid.Column="1"
Margin="5" Aspect="AspectFit" CacheType="All"
BindingContext="{Binding Item2}" Source="{Binding ImgSvg}">
<ffimageloadingsvg:SvgCachedImage.Transformations>
<fftransformations:CornersTransformation
CornersTransformType="AllRounded"
BottomLeftCornerSize="15" BottomRightCornerSize="15"
TopLeftCornerSize="15" TopRightCornerSize="15"
/>
</ffimageloadingsvg:SvgCachedImage.Transformations>
<ffimageloadingsvg:SvgCachedImage.Triggers>
<DataTrigger TargetType="ffimageloadingsvg:SvgCachedImage"
Binding="{Binding Id}" Value="-1">
<Setter Property="IsVisible" Value="False"/>
</DataTrigger>
</ffimageloadingsvg:SvgCachedImage.Triggers>
</ffimageloadingsvg:SvgCachedImage>
<customs:CustomLabelRenderer Grid.Column="1"
BindingContext="{Binding Item2}" Text="{Binding Title}"
Style="{StaticResource LblOuterLayout}" VerticalOptions="Center"
HorizontalOptions="Center" HorizontalTextAlignment="Center"
VerticalTextAlignment="Center">
<customs:CustomLabelRenderer.Triggers>
<DataTrigger TargetType="customs:CustomLabelRenderer"
Binding="{Binding Id}" Value="-1">
<Setter Property="IsVisible" Value="False"/>
</DataTrigger>
</customs:CustomLabelRenderer.Triggers>
</customs:CustomLabelRenderer>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
开始时,图像看起来非常小,但让我们谈谈我正在旋转设备,并按原样渲染!按照正常大小,我已经放入网格的单元格中。
因此,我需要以启动应用程序时的方式渲染SVG。
谢谢!