2

我的应用程序中的某些操作需要一些时间,我想显示等待屏幕,以便用户在操作完成之前可能不会做任何事情。

请让我知道我该怎么做。

4

1 回答 1

1

您可以通过以下方式编辑 Frame 模板并插入特殊控件:

<Style x:Key="mainFrameStyle" TargetType="phone:PhoneApplicationFrame">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="phone:PhoneApplicationFrame">
            <Border x:Name="ClientArea" BorderBrush="{TemplateBinding BorderBrush}"
                    BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"
                    HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}">
                    <Grid x:Name="mainFrameGrid">
                        <ContentControl ContentTemplate="{TemplateBinding ContentTemplate}"
                                Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                                HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                                VerticalAlignment="{TemplateBinding VerticalAlignment}"
                                VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />

                        <Grid Background="Black" Visibility="{Binding IsBusy, Converter={StaticResource TrueToVisibleConverter}, Source={StaticResource FrameViewModel}}">
                            <TextBlock Text="Loading.." VerticalAlignment="Center" HorizontalAlignment="Center"/>
                        </Grid>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

并使用以下代码在 InitializePhoneApplication() 中的 App.xaml.cs 中应用此模板:

    RootFrame = new TransitionFrame();
    RootFrame.Style = Resources["mainFrameStyle"] as Style;

因此,您只需将一些视图模型注册为静态资源,并在需要时更改它的 IsBusy 属性。

于 2013-01-03T11:45:13.367 回答