嵌套控件的Silverlight自动高度问题
本文关键字:高度 问题 Silverlight 控件 嵌套 | 更新日期: 2023-09-27 18:20:58
我继承了一个silverlight应用程序,现在需要扩展。该应用程序位于地图上,最初有1个文本块项目和一个可折叠的选项控件。这已经被扩展,使得文本块成为一个可折叠项目,并且添加了另外两组控件的可折叠项目。
所以我的计划是沿着的路线开始的
<accordionMain>
<accordionMainItem1>
<accordion1>
<accordion1Item>
<controls>
</accordion1Item>
<accordion1Item2>
<controls>
</accordion1Item2>
</accordion1>
<accordionMainItem1>
<accordionMainItem2>
<accordion2>
<accordion2Item>
<controls>
</accordion2Item>
<accordion2Item2>
<controls>
</accordion2Item2>
</accordion2>
<accordionMainItem2>
</accordionMain>
这将有望为我提供添加控件所需的结构。
作为Silverlight的新手,我做了一些XAML,取得了一些进展,但遇到了一个问题。
整个东西所在的StackPanel和Canvas并没有像我希望的那样自动调整大小。我不确定该怎么做,但尝试了Height="Auto",但没有成功。我想要的是当第二个手风琴根据需要扩展面板和边框时,自动调整尺寸。
我在这里附上了完整的XAML
就我个人而言,我避免使用StackPanel
来进行控件的非琐碎布局。我发现Grid
在填充可用空间和调整大小方面要灵活得多,这通常是我在设计会增长和收缩的界面时想要的。
因此,我对您的示例的第一步是为您的网格定义几行,并将展开的元素分别放置到一行中。回顾您的例子,我发现实际上只有一个扩展的东西:AccordianMain
,所以请确保它在Row
中,其中Height="Auto"
。
顺便问一下,你用Canvas
干什么?为什么Grid
包含Canvas
上的手风琴,而StackPanel
中唯一的项目是Canvas
?
试着简化你的布局,我不明白为什么你内心的Grid
不能直接放在你的Border
中,所以看不到StackPanel
或Canvas
给聚会带来了什么。但也许我错过了什么。