如果在调用服务时需要时间,我怎么能在页面上有一个加载/进度条,直到调用和响应未完成,控件不可访问
答案 0 :(得分:1)
尝试这种方式,在进度条后面创建一个覆盖整个屏幕的空网格,并将其不透明度设置为0.5,以便背景可以看到。
<Grid Grid.Row="0" x:Name="GrdProgressBar" Background="Transparent" >
<Grid Background="White" Opacity="0.5"></Grid>
<StackPanel VerticalAlignment="Center">
<ProgressBar IsIndeterminate="True" Foreground="Green" Margin="0,5,0,0" ></ProgressBar>
<TextBlock Text="loading.." FontSize="20" FontStyle="Italic" Foreground="Black" HorizontalAlignment="Center" ></TextBlock>
</StackPanel>
</Grid>
你需要做的就像使用ProgessBar一样设置`GrdProgressBara的可见性。
希望它对你有所帮助:)。
答案 1 :(得分:1)
另一种方法是使用属性IsLoading
,该属性在服务调用正在进行时为true,在调用完成后为false。然后,您可以使用转换器并将控件的IsEnabled
属性绑定到反IsLoading
值。因此,当您的服务调用正在运行时,所有控件都将被禁用,并且当调用完成时,将重新启用该控件。您只需要设置IsLoading
属性并在XAML中绑定。无需其他代码。