Xamarin表单 - 将光标更改为等待光标

时间:2017-10-27 05:34:06

标签: c# android xamarin.forms uwp cursor

在大多数桌面应用中,如果您正在等待某事,鼠标光标将变为等待光标。显然,手机有点不同。但是,在UWP领域,我们希望鼠标光标在发生异步操作时更改为等待光标。

有没有办法在标准Xamarin表单中执行此操作?或者使用第三方库?

希望是在手机上,会有一些其他视觉指示器发生某些事情。即键盘颜色变化或类似的东西。

如果没有,我猜测我必须为每个平台实现一些依赖注入代码。有什么提示吗?

2 个答案:

答案 0 :(得分:1)

不是UWP问题的答案,但这是您可以通过电话处理的事情:

您可以在整个页面上添加Grid,并将其设置为灰色和半透明,以使页面的其余部分变为“灰色”。然后在ActivityIndicator的中间添加Grid以指示正在加载某些内容。将IsVisible的{​​{1}}设置为bool值,表示正在加载/发生某些内容。

这是我在其中一个页面上的内容:

Grid

答案 1 :(得分:0)

我对丹尼斯来说是一个类似的答案,可以重复使用。

我在App.xaml中创建了一个控件模板

   <ControlTemplate x:Key="ActivityIndicatorTemplate">
        <Grid>
            <ContentPresenter />
            <StackLayout Style="{StaticResource BlockingPanel}"
                         IsVisible="{TemplateBinding BindingContext.IsBusy}">
                <ActivityIndicator Style="{StaticResource ActivityIndicatorStyle}"
                                   IsVisible="{TemplateBinding BindingContext.IsBusy}"
                                   IsRunning="{TemplateBinding BindingContext.IsBusy}" />
            </StackLayout>
        </Grid>
    </ControlTemplate>

以下是样式

    <Style x:Key="BlockingPanel" TargetType="StackLayout">
        <Setter Property="BackgroundColor" Value="{StaticResource BlockingColor}" />
        <Setter Property="HorizontalOptions" Value="FillAndExpand" />
        <Setter Property="VerticalOptions" Value="FillAndExpand" />
    </Style>

    <Style x:Key="ActivityIndicatorStyle" TargetType="ActivityIndicator">
        <Setter Property="Color" Value="White" />
        <Setter Property="HorizontalOptions" Value="CenterAndExpand" />
        <Setter Property="VerticalOptions" Value="CenterAndExpand" />
    </Style>

   <Color x:Key="BlockingColor">
        <x:Arguments>
            <x:Double>0</x:Double>
            <x:Double>0</x:Double>
            <x:Double>0</x:Double>
            <x:Double>0.75</x:Double>
        </x:Arguments>
    </Color>

然后你就可以在任何这样的页面上使用它

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Incident.Pages.LoginPage"
             ControlTemplate="{StaticResource ActivityIndicatorTemplate}"
             Title="Login">

...

</ContentPage>