Xamarin Forms MacOS 中的 FadeTo 动画无法正常工作
Posted
技术标签:
【中文标题】Xamarin Forms MacOS 中的 FadeTo 动画无法正常工作【英文标题】:FadeTo Animation in Xamarin Forms MacOS not working 【发布时间】:2021-01-21 15:34:33 【问题描述】:我正在 Xamarin Forms MacOS 中创建自定义框架。框架本身看起来不错,但想法是在被选中时淡入。我创建了一个可以成功运行的可绑定属性,并且 TranslateBox
方法运行良好。
问题是await this.FadeTo(1, 1250, Easing.Linear);
。没有动画发生,而是在 1250 秒后出现。
public class CustomFrame : Frame
public bool IsExpanded
get return (bool)GetValue(IsExpandedProperty);
set SetValue(IsExpandedProperty, value);
public static readonly BindableProperty IsExpandedProperty = BindableProperty.Create(
nameof(IsExpanded),
typeof(bool),
typeof(CustomFrame),
false,
propertyChanged: IsExpandedChanged
);
private static void IsExpandedChanged(BindableObject bindable, object oldVal, object newVal)
var getInstance = (CustomFrame)bindable;
getInstance.TranslateBox();
public void TranslateBox()
Device.BeginInvokeOnMainThread(async () =>
if (this.IsExpanded)
await this.FadeTo(1, 1250, Easing.Linear);
else
await this.FadeTo(0, 1250, Easing.Linear);
);
任何线索是什么导致了这个问题?这是一个已知的错误吗?如果是,是否有任何解决方法/黑客?
【问题讨论】:
【参考方案1】:我在本地测试过,效果很好。
使用两个按钮单击事件进行测试以更改 IsExpanded
属性。
Xaml 代码:
<local:CustomFrame x:Name="MyFrame" BackgroundColor="#2196F3">
<Lable Text="Welcome to Xamarin.Forms!" FontSize=""36/>
</local:CustomFrame>
<Button Text="Animate" Clicked="Button_Clicked_1"/>
<Button Text="AnimateBack" Clicked="Button_Clicked_2"/>
Xaml.cs 代码:
void Button_Clicked_1(System.Object sender, System.EventArgs e)
MyFrame.IsExpanded = true;
void Button_Clicked_2(System.Object sender, System.EventArgs e)
MyFrame.IsExpanded = false;
注意:Xamarin.Forms 的版本是4.8.0.1451
,如果不是最新版本,您可以更新它以检查。
【讨论】:
@DiddanDo 嗨,它也有动画。以上是关于Xamarin Forms MacOS 中的 FadeTo 动画无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms.Forms.Init(e) Onlaunched 中的 FileNotFoundExeception