我的应用程序中的某些操作需要一些时间,我想显示等待屏幕,以便用户在操作完成之前可能不会做任何事情。
请让我知道我该怎么做。
您可以通过以下方式编辑 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 属性。