要实现这一点:
您的资源文件夹中需要两张图片。 whitehearticon3.png & pinkhearticon3.png
当我们点击心形图标时,应该有一个布尔属性会发生变化。
private bool _isLiked;
public bool IsLiked
{
get { return _isLiked; }
set
{
_isLiked = value;
OnPropertyChanged("IsLiked");
}
}
现在您可以使用 Image 上的DataTrigger 来根据此属性的值更改图像源。
<Image Grid.Row="0" Grid.Column="5" Margin="0,10,0,0">
<Image.GestureRecognizers>
<TapGestureRecognizer Command="{Binding HeartTapCommand}" NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
<Image.Triggers>
<DataTrigger TargetType="Image" Binding="{Binding IsLiked}" Value="True">
<Setter Property="Source" Value="pinkhearticon3.png"/>
</DataTrigger>
<DataTrigger TargetType="Image" Binding="{Binding IsLiked}" Value="False">
<Setter Property="Source" Value="whitehearticon3.png"/>
</DataTrigger>
</Image.Triggers>
</Image>
在您的 ViewModel 中,您将拥有 HeartTapCommand,如下所示:
ICommand HeartTapCommand { get; set; } = new Command (() => { IsLiked = !IsLiked; });
你应该在图片TapGuesture上绑定这个命令,所以当你点击图片时,这个命令将被执行,你可以在两个心形图标之间切换。