Xaml 如何使用集线器控制在UWP应用程序中显示ProgressRing
我有一个UWP应用程序,需要从云中的.Net服务器上托管的web服务获取SQL数据,以及从web API获取一些额外数据,我想在加载时显示一个不确定的进程环控件 我将控件绑定到MainViewModel中的一个布尔值,在整个更新过程开始时将其设置为true(通过等待的异步方法完成,该方法工作正常),然后在下载所有数据时将其设置为false,但环始终不可见。我可以看到PropertyChanged正在被提升,但这并没有什么区别——进度环永远不会显示出来 不过,事情是这样的——进程环正在工作,但因为我无法让它显示在我的集线器控件前面,它似乎不工作。我知道这一点,因为如果我将轮毂向下移动100像素,并将进度环的垂直对齐设置为顶部,那么我可以看到该环,并且它的行为完全符合预期。但我显然不想浪费100像素,我需要让它显示在所有内容的前面,就像你期望的任何进度控制一样 我还尝试将环放在中间集线器部分的数据模板网格中(每个集线器有3个并排640px)和DataTmeplate本身(下面的第二个在Page.Resources中),但它仍然无法显示,所以我非常恼火 我知道这一定是最简单的XAML问题,但我已经尝试了我能想到的一切,并搜索了网络,所以我希望其他人能帮助我获得Proges戒指,以显示在集线器前 这里是我的XAML页面的一个精简版本——我可以发布很多,但这是一个大页面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正在被提升,但这并没有什么区别——进度环永远不会显示出来 不过,事情是这样的——进程环正在工作,但因为
<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,除了枢纽之后。集线器使用整个屏幕,所以我认为它需要在里面。再次感谢:-)