在过去的几天里,我一直试图让梯度在iOS上的.Net Maui中工作,但它似乎崩溃了。
它在Android中运行得很好。
<Grid HeightRequest="316" HorizontalOptions="Fill">
<Grid.Background>
<LinearGradientBrush EndPoint="0,1">
<GradientStop Color="{Binding myStartColor}"
Offset="0.1" />
<GradientStop Color="{Binding myEndColor}"
Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
现在,正如你在上面的例子中看到的,我正在使用绑定来设置GradientStop的color属性的颜色。这将导致应用程序崩溃。
为清晰起见,添加了viewModel
public class myDemoModel : BindableBaseObject
{
public Color myStartColor { get; set; }
public Color myEndColor { get; set; }
}
我已经用Grid,VerticalStackLayout,BoxView测试子它(还有一些问题我将在另一个线程中讨论)
他们的行为都是一样的/相似的。
以下是一些确实有效的方法
<Grid HeightRequest="316" HorizontalOptions="Fill">
<Grid.Background>
<LinearGradientBrush EndPoint="0,1">
<GradientStop Color="Red"
Offset="0.1" />
<GradientStop Color="Green"
Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
因此,给它一个静态的颜色值似乎工作得很好,除了BoxView(有额外的问题,我将在另一个线程中讨论)。
问题是我需要动态地改变颜色。
2条答案
按热度按时间lb3vh1jj1#
这不是FIX,而是在Microsoft修复问题之前的解决方案。
在我的模型中,我添加了一个BackgroundGradient属性
现在我不是绑定到xaml中的颜色,而是绑定到背景
我希望这对某人有帮助。
dl5txlt92#
在BoxView上将color属性设置为transparent也可以解决iOS上的崩溃问题。
因此下面的示例与原始代码相同,但添加了Color属性,并使用BoxView而不是Grid。