我得到了这五张图片,我想将所选图标的不透明度更改为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>
答案 0 :(得分:0)
更改不透明度的代码可能如下所示:
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>