【问题标题】:Xamarin OnImageClick in ListView change image colorListView 中的 Xamarin OnImageClick 更改图像颜色
【发布时间】:2019-11-18 17:35:06
【问题描述】:

我有问题。我创建了一个带有网格的 ListView。在网格中我有一个图像,但现在我希望能够单击图像,当我这样做时,图像应该改变颜色。 这是我的 ListView 的 axml:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="MyApp.HomePage">
    <ContentPage.Content>
        <ListView x:Name="ListViewMain" VerticalOptions="FillAndExpand" BackgroundColor="#212121" SelectionMode="None">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid x:Name="GridMain">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="40" x:Name="Row0_Height"/>
                                <RowDefinition Height="180" x:Name="Row1_Height"/>
                                <RowDefinition Height="180" x:Name="Row2_Height"/>
                                <RowDefinition Height="40" x:Name="Row3_Height"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="40" x:Name="Column0_Width" />
                                <ColumnDefinition Width="*" x:Name="Column1_Width" />
                                <ColumnDefinition Width="40" x:Name="Column2_Width" />
                            </Grid.ColumnDefinitions>
                            <Label Text="{Binding Creator}" TextColor="White" FontSize="Body" FontAttributes="Bold" Grid.Column="1" Grid.Row="0" VerticalOptions="Center" HorizontalOptions="Start"/>
                            <Image Source="VoteUp.png" VerticalOptions="End" HorizontalOptions="Center" Grid.Row="1" Grid.Column="0"/>
                            <Image Source="VoteDown.png" VerticalOptions="Start" HorizontalOptions="Center" Grid.Row="2" Grid.Column="0"/>
                            <Image Source="{Binding ImageLocation}" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" BackgroundColor="AliceBlue" VerticalOptions="Fill" HorizontalOptions="Fill"/>
                            <Image Source="Favorite.png" Grid.Row="3" Grid.Column="1" HorizontalOptions="Start"/>
                            <Image Source="Send_Dark.png" Grid.Row="3" Grid.Column="1" HorizontalOptions="End"/>
                            <Image Source="Save_Dark.png" Grid.Row="3" Grid.Column="2" HorizontalOptions="End"/>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </ContentPage.Content>
</ContentPage>

以 Save_Dark.png 为例,如何在该图像上设置 clicklistener 然后更改颜色?

【问题讨论】:

    标签: c# xamarin xamarin.forms xamarin.android xamarin.ios


    【解决方案1】:

    使用手势识别器

    <Image Source="Save_Dark.png" Grid.Row="3" Grid.Column="2" HorizontalOptions="End" >
      <Image.GestureRecognizers>
        <TapGestureRecognizer Tapped="Image_Tapped" />
      </Image.GestureRecognizers>
    </Image>
    
    protected void Image_Tapped(object sender, EventArgs args)
    {
      var i = (Image)sender;
      i.Source = ... new image source here ...
    }                    
    

    【讨论】:

    • 是否可以更改图像的颜色?图片只包含一种颜色
    • 我不知道。您需要有两个版本的图像,然后交换它们。
    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 2019-06-20
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 2013-03-29
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多