我可以让页面的内容在Xamarin.Forms中淡入淡出吗?

我可以让页面的内容在Xamarin.Forms中淡入淡出吗?,xamarin,xamarin.forms,xamarin.ios,Xamarin,Xamarin.forms,Xamarin.ios,我有一个显示文字的内容页。我从数据库中获取单词,填充视图模型,视图模型通过绑定更改标签文本,然后此代码使新词可见: phrasesPageStackLayout.IsVisible = true; 几秒钟后,这会使文字消失: phrasesPageStackLayout.IsVisible = false; 我得到一个新单词,这个过程又开始了 在Xamarin.表单中,我可能会让文字淡入视野,淡出视野。例如,在3秒钟内 您可以尝试使用以达到您的效果。例如使用mytextlab.FadeTo(

我有一个显示文字的内容页。我从数据库中获取单词,填充视图模型,视图模型通过绑定更改标签文本,然后此代码使新词可见:

phrasesPageStackLayout.IsVisible = true;
几秒钟后,这会使文字消失:

phrasesPageStackLayout.IsVisible = false;
我得到一个新单词,这个过程又开始了

在Xamarin.表单中,我可能会让文字淡入视野,淡出视野。例如,在3秒钟内

您可以尝试使用以达到您的效果。例如使用
mytextlab.FadeTo(0,3000)以实现淡出效果。如果希望标签先淡入淡出,然后淡出,请尝试以下操作:

await MyTextLabel.FadeTo(1, 1500);
await MyTextLabel.FadeTo(0, 1500);

我更喜欢使用可重用的方法,然后我创建了一个扩展方法来处理这种需求:

public static class VisualElementExtensions
{
    public static async System.Threading.Tasks.Task FadeOut(this VisualElement element, uint duration = 400, Easing easing = null)
    {
        await element.FadeTo(0, duration, easing);
        element.IsVisible = false;
    }

    public static async System.Threading.Tasks.Task FadeIn(this VisualElement element, uint duration = 400, Easing easing = null)
    {
        await element.FadeTo(1, duration, easing);
        element.IsVisible = true;
    }
}
您可以在任何可视化元素(按钮、标签、布局等)中使用它,如下所示:

phrasesPageStackLayout.FadeOut (); /* I guess 1.5 seconds is too much time to this kind of purpose, but you can do `phrasesPageStackLayout.FadeOut (3000)` if you need. */ 
// Or 
phrasesPageStackLayout.FadeIn (500, Easing.CubicOut)

我希望它能对您有所帮助。

您可能还想看看Xamanimation-您将立即获得标准动画:

XF支持开箱即用的动画。查看官方指南:谢谢,这会不会同时在phrasesPageStackLayout标签中的所有文本中消失?Yes@Alan2,该效果应该应用于布局及其所有子级。有没有一种方法可以使其同时应用于堆栈布局上的所有标签?@Alan2您可以让布局调用此方法,如:“MyStacklayout.FadeTo(0,1500)”