我有一个箭头图像,当一个扩展器被展开时旋转。我试图将XAML代码转换为C#,我可以看到箭头和应用主题绑定在C#代码中工作,除了它不旋转。
示例:
<Image
HeightRequest="25"
HorizontalOptions="End"
Source="{AppThemeBinding Light=down_arrow.png,
Dark=down_arrow_dark.png}"
VerticalOptions="Start">
<Image.Triggers>
<DataTrigger
Binding="{Binding Source={RelativeSource AncestorType={x:Type mct:Expander}}, Path=IsExpanded}"
TargetType="Image"
Value="True">
<Setter Property="Rotation" Value="180" />
</DataTrigger>
</Image.Triggers>
</Image>
目前的C#程式码:
var arrowImage = new Image()
{
Triggers =
{
new DataTrigger(typeof(Image))
{
Value = true,
Binding = new Binding(nameof(expander.IsExpanded)),
Setters =
{
new Setter()
{
Property = Image.RotationProperty,
Value = 180
}
}
}
},
HeightRequest = 25,
HorizontalOptions = LayoutOptions.End,
};
arrowImage.SetAppTheme<FileImageSource>(Image.SourceProperty, "down_arrow.png", "down_arrow_dark.png");
1条答案
按热度按时间cdmah0mi1#
我必须设置Source并为
Value = false
设置一个触发器,使其与XAML的行为相同。