C# 布局周期检测到两个ProgressRing的错误
我想创建一个带有两个网格的自定义用户控件,我想在其中加载图像,在加载图像之前,我想显示progressRing控件。当我添加第二个ProgressRing时,问题就出现了。我的XAML如下所示:C# 布局周期检测到两个ProgressRing的错误,c#,xaml,user-controls,windows-phone-8.1,C#,Xaml,User Controls,Windows Phone 8.1,我想创建一个带有两个网格的自定义用户控件,我想在其中加载图像,在加载图像之前,我想显示progressRing控件。当我添加第二个ProgressRing时,问题就出现了。我的XAML如下所示: <Grid Margin="0,0,0,21" Background="{ThemeResource PhoneAccentBrush}"> <Grid x:Name="leftImage" Margin="10" Width="190" Height="190"
<Grid Margin="0,0,0,21" Background="{ThemeResource PhoneAccentBrush}">
<Grid x:Name="leftImage" Margin="10" Width="190" Height="190"
HorizontalAlignment="Left">
<Image x:Name="imageHolderLeft" x:FieldModifier="public" Width="180"
Height="180" ImageFailed="imageHolderLeft_ImageFailed"
ImageOpened="imageHolderLeft_ImageOpened"/>
<Grid>
<ProgressRing x:Name="waitImageLeft" IsActive="True"
VerticalAlignment="Center" HorizontalAlignment="Center"
Background="Transparent"
Foreground="{ThemeResource AppBarBackgroundThemeBrush}"/>
</Grid>
</Grid>
<Grid x:Name="rightImage" Margin="10" Width="190" Height="190"
HorizontalAlignment="Right">
<Image x:Name="imageHolderRight" x:FieldModifier="public" Width="180"
Height="180" ImageOpened="imageHolderRight_ImageOpened"
ImageFailed="imageHolderRight_ImageFailed"/>
<Grid>
<ProgressRing x:Name="waitImageRight" IsActive="True"
VerticalAlignment="Center" HorizontalAlignment="Center"
Background="Transparent"
Foreground="{ThemeResource AppBarBackgroundThemeBrush}"/>
</Grid>
</Grid>
</Grid>
因此,当我注释掉一个ProgressRing
时,它工作正常,但当有两个时,我的程序崩溃,出现以下错误:检测到布局周期。布局无法完成
有人知道为什么吗?
谢谢:)此错误表示元素的布局依赖于间接依赖于原始元素的其他元素。Windows无法确定总体布局。。。很像无限循环或无限递归
在您的情况下,原因可能与路线和尺寸有关。你应该能够通过简化布局来解决这个问题。保留外部网格,但添加5个列定义,中间一个具有宽度*,另一个具有自动宽度。去掉其他4个网格。相反,将两个图像和进度环直接放入第0、1、3和4列的主网格中(使用Grid.Column attached属性)。将所需尺寸放在图像和进度环的宽度和高度属性上,而不是放在网格上。实际上,您没有提到错误。正在引发哪个异常?完整的错误消息:“检测到布局周期。布局无法完成”是否可以尝试为所有使用的元素指定特定的高度和宽度?是否执行了此操作。甚至尝试到和最大/最小宽度/高度,但没有结果从中删除您的width=“190”height=“190”。网格喜欢拉伸。如果不想拉伸,请使用StackPanel或在图像和进程控件上设置宽度/高度。