簡體   English   中英

更改多個圖像Xamarin.Forms的不透明度

[英]Changing Opacity of multiple images Xamarin.Forms

我得到了這五張圖像,我想將所選圖標的不透明度更改為1,然后將其余部分設置為0.25。

我走了這么遠,但不知道如何更改所有這些對象的不透明度。 所有指南都提到x:引用每個圖像,但是當我得到多個圖像時,它們會很快變得怪異。

public async void OnSeverityTapped(object sender, EventArgs args)
  {
    String[] buttons = new String[SeverityValues.Count];
    for (int n = 0; n < SeverityValues.Count; ++n)
    {
        buttons[n] = SeverityValues[n].Name;
    }

    var res = await this.DisplayActionSheet("Pick Severity", "Cancel", "", buttons);
    if (res != "Cancel")
        foreach (var item in SeverityValues)
        {
            if (item.Name == res)
            {
                Issue.SeverityEx = item.Value;
                lbSeverity.Text = item.Name;
                return;
            }
        }
  }

Xaml

<!--Severity-->
<Label Grid.Row="0" Grid.Column="0" Text="SEVERITY" XAlign="Start" YAlign="Center" Style="{StaticResource Labelfont}" />
<Label x:Name="lbSeverity" Grid.Column="1" Text="" YAlign="Center" HorizontalOptions="StartAndExpand"  Style="{StaticResource Labelfont}"  />
<StackLayout Grid.Row="1" Grid.Column="0" Orientation="Horizontal" Spacing="4">
    <Image Source="severity_5.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40" Opacity="0.4"/>
    <StackLayout.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
    </StackLayout.GestureRecognizers>
</StackLayout>

<StackLayout Grid.Row="1" Grid.Column="1" Orientation="Horizontal" Spacing="4">
    <Image Source="severity_4.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40" Opacity="0.4"/>
    <StackLayout.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
    </StackLayout.GestureRecognizers>
</StackLayout>

<StackLayout Grid.Row="1" Grid.Column="2" Orientation="Horizontal" Spacing="4">
    <Image Source="severity_3.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40" Opacity="1"/>
    <StackLayout.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
    </StackLayout.GestureRecognizers>
</StackLayout>

<StackLayout Grid.Row="1" Grid.Column="3" Orientation="Horizontal" Spacing="4">
    <Image Source="severity_2.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40" Opacity="0.4"/>
    <StackLayout.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
    </StackLayout.GestureRecognizers>
</StackLayout>

<StackLayout Grid.Row="1" Grid.Column="4" Orientation="Horizontal" Spacing="4">
    <Image Source="severity_1.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40" Opacity="0.4"/>
    <StackLayout.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
    </StackLayout.GestureRecognizers>
</StackLayout>

您用於更改不透明度的代碼如下所示:

    public void OnSeverityTapped(object sender, EventArgs args)
    {
        severity5.Opacity = 0.25;
        severity4.Opacity = 0.25;
        severity3.Opacity = 0.25;
        severity2.Opacity = 0.25;
        severity1.Opacity = 0.25;

        var image = (Image)sender;
        image.Opacity = 1;
    }
}

和xaml:

<StackLayout>
    <Image x:Name="severity5" Source="severity_5.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40">
        <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
        </Image.GestureRecognizers>
    </Image>
    <Image x:Name="severity4" Source="severity_4.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40">
        <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
        </Image.GestureRecognizers>
    </Image>
    <Image x:Name="severity3" Source="severity_3.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40">
        <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
        </Image.GestureRecognizers>
    </Image>
    <Image x:Name="severity2" Source="severity_2.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40">
        <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
        </Image.GestureRecognizers>
    </Image>
    <Image x:Name="severity1" Source="severity_1.png" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="40">
        <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="OnSeverityTapped" NumberOfTapsRequired="1"/>
        </Image.GestureRecognizers>
    </Image>
</StackLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM