2

アプリケーションの一部の操作には時間がかかります。待機画面を表示して、操作が完了するまでユーザーが何もできないようにしたいと考えています。

どうすればいいのか教えてください。

4

1 に答える 1

1

フレーム テンプレートを編集し、次の方法で特別なコントロールを挿入できます。

<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;

したがって、ビューモデルを staticresource として登録し、必要に応じて IsBusy プロパティを変更するだけです。

于 2013-01-03T11:45:13.367 に答える