当我从Xamarin.Forms转换时,我试图在.NET Maui中动态地为svg图像着色。我设置了下面的代码来使用字符串格式的颜色绑定,但是我得到了下面的错误。如何在.NET Maui中实现这一点?
错误XLS0503无法将“IconTintColorBehavior”类型的值添加到“IList”类型的集合或字典“1”中
XAML代码
<Grid>
<Image
x:Name="NeedleSVG"
WidthRequest="200"
HeightRequest="200"
Source="resource://XamarinAttributeProgrammer.Resources.Images.Needle.svg">
<Image.Effects>
<mct:IconTintColorBehavior TintColor="{Binding NeedleColorInHex}" />
</Image.Effects>
</Image>
<Image
WidthRequest="200"
HeightRequest="200"
Source="resource://XamarinAttributeProgrammer.Resources.Images.Backlight.svg">
<Image.Effects>
<mct:IconTintColorBehavior TintColor="{Binding BackColorInHex}" />
</Image.Effects>
</Image>
<Image
WidthRequest="200"
HeightRequest="200"
Source="resource://XamarinAttributeProgrammer.Resources.Images.Housing.svg">
<Image.Effects>
<mct:IconTintColorBehavior TintColor="{Binding BackColorInHex}" />
</Image.Effects>
</Image>
<Button ClassId="BackLight"
BackgroundColor="Transparent"
WidthRequest="250"
HorizontalOptions="Center"
Clicked="OnPreviewTapped"/>
<Button ClassId="Needle"
BackgroundColor="Transparent"
HeightRequest="80"
WidthRequest="80"
VerticalOptions="Center"
HorizontalOptions="Center"
Margin="0,20,0,0"
Clicked="OnPreviewTapped"/>
</Grid>
视图模型
public string SelectedColorInHex
{
get
{
NotifyGaugeOfChangeAsync();
Task.Delay(50).Wait(); // wait 50ms so that we dont flood the gauge
if (FocusColorOn == BACKLIGHT)
return BackColorInHex;
else
return NeedleColorInHex;
}
set
{
if (FocusColorOn == BACKLIGHT)
_colorBack.Hex = value;
else
_colorNeedle.Hex = value;
}
}
1条答案
按热度按时间kqlmhetl1#
你正在尝试添加一个行为到效果集合
应