我想创建一个带有两个网格的自定义用户控件,我想在其中加载图像,直到加载图像我想显示progressRing控件。添加第二个ProgressRing时会出现问题。我的XAML看起来像这样:
<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
时,它运行正常,但当有两个程序时,我的程序崩溃并出现以下错误:Layout cycle detected. Layout could not complete
有谁知道为什么? 谢谢:))
答案 0 :(得分:0)
此错误表明元素的布局依赖于其他元素,这些元素间接依赖于原始元素。 Windows无法弄清整体布局...很像无限循环或无限递归。
在您的情况下,原因可能与对齐方式和大小有关。您应该能够通过简化布局来解决问题。保留外部Grid,但添加5个ColumnDefinitions,中间一个具有width *,另一个具有width Auto。摆脱其他4个网格。而是将两个图像和进度环直接放在第0、1、3和4列的主Grid中(使用Grid.Column附加属性)。将所需的尺寸放在图像和进度环的Width和Height属性上,而不是在Grid上。