C# 具有嵌套控件的Silverlight自动高度问题
我继承了一个silverlight应用程序,现在需要扩展。该应用程序位于地图上,最初有一个文本块项目和一个手风琴控制选项。这已被扩展,以便文本块成为一个手风琴项目,并进一步添加了两组控件的手风琴项目 所以我的计划是从C# 具有嵌套控件的Silverlight自动高度问题,c#,xaml,silverlight,accordion,C#,Xaml,Silverlight,Accordion,我继承了一个silverlight应用程序,现在需要扩展。该应用程序位于地图上,最初有一个文本块项目和一个手风琴控制选项。这已被扩展,以便文本块成为一个手风琴项目,并进一步添加了两组控件的手风琴项目 所以我的计划是从 <accordionMain> <accordionMainItem1> <accordion1> <accordion1Item> <controls> </ac
<accordionMain>
<accordionMainItem1>
<accordion1>
<accordion1Item>
<controls>
</accordion1Item>
<accordion1Item2>
<controls>
</accordion1Item2>
</accordion1>
<accordionMainItem1>
<accordionMainItem2>
<accordion2>
<accordion2Item>
<controls>
</accordion2Item>
<accordion2Item2>
<controls>
</accordion2Item2>
</accordion2>
<accordionMainItem2>
</accordionMain>
就我个人而言,我避免使用堆栈面板
,因为控件的布局非常繁琐。我发现网格
在填充可用空间和调整大小方面要灵活得多,这通常是我在设计会增长和收缩的界面时想要的
因此,我使用您的示例的第一步是为网格定义两行,并将展开元素分别放在一行中。回顾您的示例,我发现实际上只有一个扩展项:AccordianMain
,因此请确保它位于行中,其中Height=“Auto”
顺便问一下,您使用画布做什么?为什么画布上包含手风琴的网格
,以及堆栈面板
画布
中唯一的项目
试着简化你的布局,我不明白为什么你的内部网格不能直接放在你的边框中,所以看不到堆栈面板或画布给聚会带来了什么。但也许我遗漏了什么。嗨,谢谢你的回复。你没有遗漏任何东西-我复制了现有的一堆控件,并将它们包装在主手风琴的一个手风琴项目中。我的意图是移除我不需要的“额外”控制。在这样做的过程中,我还复制了那些控件所在的所有画布和堆栈面板。我目前正在删除它们以简化问题。我认为删除画布将解决您的问题。画布使用绝对定位,不考虑调整大小。几乎在所有情况下,只要巧妙地使用网格
,您都可以获得一个很好的动态大小布局。您关于删除画布的建议非常正确。我还在这里应用了样式修复,修复了嵌套手风琴无法正确绘制的问题。非常感谢。