Xaml 如何使用集线器控制在UWP应用程序中显示ProgressRing

Xaml 如何使用集线器控制在UWP应用程序中显示ProgressRing,xaml,progress-bar,win-universal-app,Xaml,Progress Bar,Win Universal App,我有一个UWP应用程序,需要从云中的.Net服务器上托管的web服务获取SQL数据,以及从web API获取一些额外数据,我想在加载时显示一个不确定的进程环控件 我将控件绑定到MainViewModel中的一个布尔值,在整个更新过程开始时将其设置为true(通过等待的异步方法完成,该方法工作正常),然后在下载所有数据时将其设置为false,但环始终不可见。我可以看到PropertyChanged正在被提升,但这并没有什么区别——进度环永远不会显示出来 不过,事情是这样的——进程环正在工作,但因为

我有一个UWP应用程序,需要从云中的.Net服务器上托管的web服务获取SQL数据,以及从web API获取一些额外数据,我想在加载时显示一个不确定的进程环控件

我将控件绑定到MainViewModel中的一个布尔值,在整个更新过程开始时将其设置为true(通过等待的异步方法完成,该方法工作正常),然后在下载所有数据时将其设置为false,但环始终不可见。我可以看到PropertyChanged正在被提升,但这并没有什么区别——进度环永远不会显示出来

不过,事情是这样的——进程环正在工作,但因为我无法让它显示在我的集线器控件前面,它似乎不工作。我知道这一点,因为如果我将轮毂向下移动100像素,并将进度环的垂直对齐设置为顶部,那么我可以看到该环,并且它的行为完全符合预期。但我显然不想浪费100像素,我需要让它显示在所有内容的前面,就像你期望的任何进度控制一样

我还尝试将环放在中间集线器部分的数据模板网格中(每个集线器有3个并排640px)和DataTmeplate本身(下面的第二个在Page.Resources中),但它仍然无法显示,所以我非常恼火

我知道这一定是最简单的XAML问题,但我已经尝试了我能想到的一切,并搜索了网络,所以我希望其他人能帮助我获得Proges戒指,以显示在集线器前

这里是我的XAML页面的一个精简版本——我可以发布很多,但这是一个大页面

   <Page
        x:Class="TVTracker.MainPage"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:TVTracker"
        xmlns:vm="using:TVTracker.ViewModel"
        xmlns:model="using:TVTracker.Model"
        xmlns:hlp="using:TVTracker.Common"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        RequestedTheme="Light">

        <Page.DataContext>
            <vm:MainViewModel/>
        </Page.DataContext>

        <Page.Resources>

            <!-- styles and other resources here -->

            <!-- gets displayed in first of 3 hub sections 640 wide --> 
            <DataTemplate x:Key="ShowListTemplate" x:DataType="model:TVShow">
                <Grid Width="640" Height="Auto" Margin="5" HorizontalAlignment="Stretch" RightTapped="ShowsList_RightTapped">
                <!-- ...etc etc... -->
           <\DataTemplate>

            <!-- gets displayed in second of 3 hub sections 640 wide -->      
            <DataTemplate x:Key="DetailsTemplate" x:DataType="model:TVShow">

                <Grid Width="640" Margin="0,20,0,0" Height="Auto" VerticalAlignment="Top" HorizontalAlignment="Stretch">
                    <!-- ...etc etc... -->
                </Grid>
           </DataTemplate>

            <!-- gets displayed in second of 3 hub sections 640 wide -->   
            <DataTemplate x:Key="EpisodeListTemplate" x:DataType="model:Episode">

                <Grid Width="640" Margin="0,20,0,0" Height="Auto" VerticalAlignment="Top" HorizontalAlignment="Stretch">
                    <!-- ...etc etc... -->
                </Grid>
            </DataTemplate>

        </Page.Resources>

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

        <ProgressRing Name="pgbLoadingShow" IsActive="{Binding LoadingShowData}" Width="100" Height="100" VerticalAlignment="top" Foreground="{StaticResource Medium}"/>

        <Hub SectionHeaderClick="Hub_SectionHeaderClick" Margin="0,0,0,0" HorizontalContentAlignment="Stretch" Background="{StaticResource Dark}">

            <Hub.Header>
                <TextBlock Text="ShowTracker" FontSize="14" Foreground="{StaticResource Bright}"/>
            </Hub.Header>
               <HubSection Name="hsShows" MinWidth="640" Padding="20" VerticalAlignment="Top" Background="{StaticResource Dark}" >
<!-- ...etc etc.. -->
</HubSection>

<!-- two other hubsections here -->

        </Hub>
    </Grid>
</Page>

您是否尝试过将ProgressRing放在XAML的中心之后

<Hub/>
<ProgressRing/>


通常情况下,它将按照您输入的顺序显示,因此ProgressRing元素将与您的代码一起位于中心的后面。

谢谢Johan,它按预期工作,所以我现在踢自己。我在你能想象的任何地方都试过Progressing,除了枢纽之后。集线器使用整个屏幕,所以我认为它需要在里面。再次感谢:-)