C# 用C创建活动指示器

C# 用C创建活动指示器,c#,xaml,xamarin.forms,cross-platform,C#,Xaml,Xamarin.forms,Cross Platform,是否可以在不使用XAML的情况下创建活动指示器?我已经在.cs中准备好了一个视图,我不想重新创建它。您也可以从代码中通过XAML创建每个控件。请参见下面的示例 class MyView : ContentView { AbsoluteLayout _layout; ActivityIndicator _activityIndicator; void InitializeControls() { _layout = new AbsoluteLayo

是否可以在不使用XAML的情况下创建活动指示器?我已经在.cs中准备好了一个视图,我不想重新创建它。

您也可以从代码中通过XAML创建每个控件。请参见下面的示例

class MyView : ContentView
{
    AbsoluteLayout _layout;
    ActivityIndicator _activityIndicator;

    void InitializeControls()
    {
        _layout = new AbsoluteLayout();
        this.Content = _layout;

        // ...

        _activityIndicator = new ActivityIndicator();
        AbsoluteLayout.SetLayoutFlags(_activityIndicator, AbsoluteLayoutFlags.PositionProportional);
        AbsoluteLayout.SetLayoutBounds(_activityIndicator, new Rectangle(.5,.5,-1,-1));
        _layout.Children.Add(_activityIndicator);
    }

    async void UpdateData()
    {
        _activityIndicator.IsRunning = true;
        this.Data = GetData();
        _activityIndicator.IsRunning = false;
    }
}
在InitializeControl中,我们首先初始化一个布局,在本例中为AbsoluteLayout,然后创建一个新的ActivityIndicator。我们正在使用AbsoluteLayout.Set设置AbsoluteLayout.LayoutFlags和AbsoluteLayout.LayoutBounds。。。这些方法是附加属性的设置器,请参阅。最后,我们将ActivityIndicator添加到AbsoluteLayout


UpdateData方法是一种组合方法,用于显示更新视图数据时如何使用ActivityIndicator。我们首先在ActivityIndicator上设置IsRunning以显示它,然后获取数据,最后取消设置IsRunning以隐藏“Activity”

没有XAML意味着什么。你已经看到了什么样的景色?你是用WPF还是UWP开发的?哎呀,我忘了描述它了。我正在为Android、iOS和UWP使用xamarin.forms制作一个跨平台应用程序。我不知道它是否正确,但我正在基于C创建我的视图。是的,在XAML中可以执行的任何操作都应该可以在C中执行。您只需将其添加到在C中创建的布局中,然后在适当时触发它。