【问题标题】:Change the background color for a limited time in Xamarin Forms在 Xamarin Forms 中更改背景颜色的有限时间
【发布时间】:2021-03-19 19:36:22
【问题描述】:

我有一个问题:

是否可以在几秒钟内更改 Xamarin Forms 中所有应用页面的背景颜色?

例如,当应用启动时,背景颜色由白色变为黑色,持续 3 秒后再次变为白色。

如果有代码或方法可以告诉我!

非常感谢那些指导我的人!

【问题讨论】:

  • 您可以为页面的 backgroundcolor 属性设置动画。对所有页面这样做会比较棘手
  • 你能给我一个代码示例或主要活动吗?

标签: c# xaml xamarin xamarin.forms


【解决方案1】:

你可以在你想要执行这个动画的任何页面的代码中重写OnAppearing方法

public partial class MyPage : ContentPage
{
    public MyPage()
    {
        InitializeComponent();
    }

    protected async override void OnAppearing()
    {
        base.OnAppearing();
        this.BackgroundColor = Color.Black;
        await Task.Delay(3000);// adjust duration here in milliseconds
        this.BackgroundColor = Color.White;
    }
}

【讨论】:

  • 嗨!谢谢你的答复。这段代码可以放在主Activity中吗?
  • 页面后面的代码中没有,你知道每个视图都附加了.xaml.cs文件
  • 是的,我知道。基本上我想这样做,因为在启动画面出现白屏之后,我意识到那个白屏是我的应用程序的主屏幕。如果您对我的问题有解决方案,请告诉我,谢谢。
  • 如果它满足您的查询@hoh,只需投票/接受答案
  • @hoh 你的意思是改变一页或全部的背景颜色?
【解决方案2】:

如果您想将页面的背景颜色更改为初始屏幕的背景颜色(在本例中为黑色),您可以像这样设置页面的背景颜色:

public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            this.BackgroundColor = Color.Black;
        }
    }

如果这解决了问题,请将其标记为正确答案。

编辑:如果你想等待 3 秒:

public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            Task.Run(async() =>
            {
                this.BackgroundColor = Color.Black;

                await Task.Delay(3000);

                this.BackgroundColor = Color.White;

            }).Wait();
        }
    }
         

这行得通吗?

【讨论】:

  • 当然!可以给时间吗?例如,要在 3 秒后返回白色? @tommy99
  • @ho h - 如果可行,请选择它作为正确答案 - 谢谢。
  • 我投了你一票。因为你的代码是正确的。 @tommy99
猜你喜欢
  • 2019-06-20
  • 1970-01-01
  • 2019-09-09
  • 2017-10-03
  • 2020-03-26
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多