1

我在 Windows 8.1 商店应用程序的 Charm 菜单中有注销选项。当用户单击魅力菜单中的注销选项时,我正在拨打服务电话。

在上述情况下,我应该在应用程序屏幕中显示加载进度条。我的问题是用户可以是我的应用程序中的任何屏幕

有什么通用的方法可以实现相同的目标吗?

4

1 回答 1

1

我的应用程序中有类似的功能。当点击/单击按钮时(在 FlyOut 中,而不是直接在 Charms 中),将执行一个可公开访问的 Sub(例如在模块中):

Public Sub OpenModalBackground(Optional ByVal strProgressText As String = "")
    pupModalBackground = New Popup
    pupModalBackground.IsLightDismissEnabled = False
    pupModalBackground.Width = Window.Current.Bounds.Width
    pupModalBackground.Height = Window.Current.Bounds.Height

    Dim foModalBackground As New FlyOuts.ModalBackground
    foModalBackground.Width = Window.Current.Bounds.Width
    foModalBackground.Height = Window.Current.Bounds.Height
    foModalBackground.ProgressText = strProgressText
    pupModalBackground.Child = foModalBackground

    pupModalBackground.SetValue(Canvas.LeftProperty, 0)
    pupModalBackground.SetValue(Canvas.TopProperty, 0)
    pupModalBackground.IsOpen = True
End Sub

如您所见,生成了一个新的 PopUp,并加载了一个“FlyOut”(UserControl)ModalBackground,如下所示:

<Grid Background="#BF000000">
    <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
        <ProgressRing IsActive="True" Foreground="White" Width="50" Height="50" HorizontalAlignment="Center"/>
        <TextBlock FontSize="15" FontWeight="SemiLight" Margin="0,20,0,0" HorizontalAlignment="Center" Text="{Binding ProgressText}"/>
    </StackPanel>
</Grid>

它对我来说效果很好。据我所见,Win8.1 有一个新的 Control FlyOut,因此您可以使用该控件而不是 UserControl。

顺便说一句:根据这些指南,您不应从入口点执行直接操作。

于 2013-09-18T12:43:31.283 回答