C# Xamarin.Forms,XAML-如何使用彩色叠加显示图像

C# Xamarin.Forms,XAML-如何使用彩色叠加显示图像,c#,xaml,xamarin,background,xamarin.forms,C#,Xaml,Xamarin,Background,Xamarin.forms,我正在我的Xamarin.Forms应用程序中构建一个布局,我需要显示一个带有透明颜色覆盖的图像。我有一个网格布局,显示图像,并在其顶部堆叠一个半透明背景色的ContentView。正如您在下面的图像中所看到的,ContentView(我怀疑包含的网格)只是拒绝缩小到图像的大小(网格中最大的项目) 我该怎么做 我在不同的视图上尝试了各种不同的垂直选项,到目前为止,我所做的一切都不起作用,但我对表单不熟悉,因此请确认您是否认为解决方案可能是基本的。:) 提前谢谢 代码如下: <Grid Ve

我正在我的Xamarin.Forms应用程序中构建一个布局,我需要显示一个带有透明颜色覆盖的图像。我有一个
网格
布局,显示图像,并在其顶部堆叠一个半透明背景色的
ContentView
。正如您在下面的图像中所看到的,
ContentView
(我怀疑包含
的网格
)只是拒绝缩小到图像的大小(网格中最大的项目)

我该怎么做

我在不同的视图上尝试了各种不同的
垂直选项
,到目前为止,我所做的一切都不起作用,但我对表单不熟悉,因此请确认您是否认为解决方案可能是基本的。:)

提前谢谢

代码如下:

<Grid VerticalOptions="Start">
    <Image Source="PlayerBackground.png" />
    <ContentView BackgroundColor="#88000000"></ContentView>
    <StackLayout VerticalOptions="Center">
        <Image/>
        <Label/>
    </StackLayout>
</Grid>

下面是它应该是什么样子:

下面是我实际得到的:


方面
属性是关键

   <Grid HorizontalOptions="Fill" VerticalOptions="Fill">
        <Image HorizontalOptions="Fill" VerticalOptions="Fill" Aspect="AspectFill" Source="PlayerBackground.png" />
        <BoxView HorizontalOptions="Fill" VerticalOptions="Fill" BackgroundColor="#000000" Opacity="0.8"/>
    </Grid>

免责声明:我是一名作家

尝试在ContentView上设置水平选项和垂直选项

您还可以使用网格代替ContentView,将水平选项和垂直选项设置为FillAndExpand,您可以尝试使用它,这非常方便。根据您的解决方案,您可以尝试以下方法

首先包括在Xamarin.Forms项目中

然后尝试下面的方法

<Grid VerticalOptions="Start">
    <local:IconView Source="PlayerBackground.png"
        VerticalOptions="Fill" HorizontalOptions="Fill"
        Foreground="Green"/>

    <local:IconView Source="Bird.png"
        VerticalOptions="Center" HorizontalOptions="Center"
        Foreground="Blue"/>
</Grid>


前景
值更改为所需的任何颜色。希望这能回答您的问题。

我知道如何使颜色透明,我的问题是如何使创建颜色覆盖的视图适合图像,而不是超出图像。您还需要使用image
Aspect
属性,我将修改我的答案,第二种解决方案也会很好。@DanielLuberda我在ViewCell中使用该转换,在绑定上下文更改覆盖时,我达到该转换并更改HexColor proeprty值,我在Listview和AndRoid上使用RecycleElement,同时滚动它,每次在同一对象上设置不同的颜色这实际上是一个答案,尽管看起来应该是后续评论。最好是写些废话,而不是你一直在说废话。谢谢。我将更改答案。我很想连接到谈论科技在王国中的应用。
<Grid VerticalOptions="Start">
    <local:IconView Source="PlayerBackground.png"
        VerticalOptions="Fill" HorizontalOptions="Fill"
        Foreground="Green"/>

    <local:IconView Source="Bird.png"
        VerticalOptions="Center" HorizontalOptions="Center"
        Foreground="Blue"/>
</Grid>