Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有嵌套控件的Silverlight自动高度问题_C#_Xaml_Silverlight_Accordion - Fatal编程技术网

C# 具有嵌套控件的Silverlight自动高度问题

C# 具有嵌套控件的Silverlight自动高度问题,c#,xaml,silverlight,accordion,C#,Xaml,Silverlight,Accordion,我继承了一个silverlight应用程序,现在需要扩展。该应用程序位于地图上,最初有一个文本块项目和一个手风琴控制选项。这已被扩展,以便文本块成为一个手风琴项目,并进一步添加了两组控件的手风琴项目 所以我的计划是从 <accordionMain> <accordionMainItem1> <accordion1> <accordion1Item> <controls> </ac

我继承了一个silverlight应用程序,现在需要扩展。该应用程序位于地图上,最初有一个文本块项目和一个手风琴控制选项。这已被扩展,以便文本块成为一个手风琴项目,并进一步添加了两组控件的手风琴项目

所以我的计划是从

<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”

顺便问一下,您使用
画布
做什么?为什么
画布上包含手风琴的
网格
,以及
堆栈面板
画布
中唯一的项目


试着简化你的布局,我不明白为什么你的内部
网格不能直接放在你的
边框中,所以看不到
堆栈面板或
画布给聚会带来了什么。但也许我遗漏了什么。

嗨,谢谢你的回复。你没有遗漏任何东西-我复制了现有的一堆控件,并将它们包装在主手风琴的一个手风琴项目中。我的意图是移除我不需要的“额外”控制。在这样做的过程中,我还复制了那些控件所在的所有画布和堆栈面板。我目前正在删除它们以简化问题。我认为删除
画布将解决您的问题。画布使用绝对定位,不考虑调整大小。几乎在所有情况下,只要巧妙地使用
网格
,您都可以获得一个很好的动态大小布局。您关于删除画布的建议非常正确。我还在这里应用了样式修复,修复了嵌套手风琴无法正确绘制的问题。非常感谢。