我正在使用Xamarin表单进行跨平台项目。我正在使用轮播视图来显示图像按钮。请参阅下面的代码片段。customImageButtonStyle 设置为 Aspect.Aspect.Fit。最初,它按预期工作。但是,图像更改后,图像仍然显示,但更小,即。不再做 Aspect.Fit。如果我将相同的代码放在轮播视图之外,它可以在没有此类问题的情况下工作。
<StackLayout Grid.Row="0" Grid.Column="1" Orientation="Vertical" HorizontalOptions="CenterAndExpand">
<Grid x:Name="relayGrid" HorizontalOptions="CenterAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="4.0*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<views:CustomImageButton x:Name="relayButton" Source="{Binding RelayIcon}" Grid.Row="0" Grid.Column="0"
Style="{StaticResource customImageButtonStyle}"
Command="{Binding NavigateCommand}" CommandParameter="{x:Type views:RelayPage}" />
<Label Text="RELAYS" Grid.Row="1" Grid.Column="0" Style="{StaticResource deviceHomeBottomTextStyle}" />
</Grid>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding NavigateCommand}" CommandParameter="{x:Type views:RelayPage}" />
</StackLayout.GestureRecognizers>
</StackLayout>
</Grid>
</x:Array>
</controls:CarouselViewControl.ItemsSource>
请注意,此问题也记录在 https://github.com/alexrainman/CarouselView/issues/561
这似乎是一个 Xamarin 表单问题。我尝试用图像替换图像按钮,问题消失了。有时,当绑定图像从视图模型更改时,AspectFit似乎不适用于ImageButton。