我正在尝试设置一个有三个项目的手风琴。前两个扩展到预定义的高度,第三个扩展到填充所有剩余空间;我觉得这很容易。
这是我正在尝试做的虚拟版本。手风琴本身有红色背景,每个项目都有自己的颜色。前两个项目适当扩展到它们的大小,但是如果项目1或2打开,项目3不再扩展以填充所有剩余空间,但是任何一个尺寸太小,留下一大块红色或太大,射击在屏幕的底部,遮住了应该仍然存在的那小块红色。
这是一个错误吗?
我尝试使用两个手风琴来解决这个问题,其中一个手风琴有两个最大高度,第二个手风琴可以扩展以填充所有剩余高度,但是我无法设法让布局正确,因为我是对于Silverlight专家来说,猜测是显而易见的。
我有什么方法可以做到这一点吗?
这是完整的代码 - 另外,请注意我尝试使用Height属性而不是MaxHeight,但这只会导致accordionItem 始终成为那个高度,无论它是否被展开。
<UserControl x:Class="SilverlightApplication8.accordianDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="400"
xmlns:sdk2="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Layout.Toolkit">
<Grid x:Name="LayoutRoot" Background="White">
<sdk2:Accordion SelectionMode="ZeroOrMore" Background="Red" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<sdk2:AccordionItem Header="Item 1" MaxHeight="150" Background="LightGoldenrodYellow">
Hello World Row 1
</sdk2:AccordionItem>
<sdk2:AccordionItem Header="Item 2" MaxHeight="150" Background="LightGray">
Hello World Row 2
</sdk2:AccordionItem>
<sdk2:AccordionItem Header="Item 3" Background="LightBlue">
Hello World Row 3
</sdk2:AccordionItem>
</sdk2:Accordion>
</Grid>
</UserControl>
答案 0 :(得分:1)
尝试在内容上设置MaxHeight。现在,您将内容设为string
,尝试将其设为ContentControl
<sdk2:Accordion SelectionMode="ZeroOrMore" Background="Red" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<sdk2:AccordionItem Header="Item 1" Background="LightGoldenrodYellow">
<ContentControl Content="Hello World Row 1" MaxHeight="150" />
</sdk2:AccordionItem>
<sdk2:AccordionItem Header="Item 2" Background="LightGray">
<ContentControl Content="Hello World Row 2" MaxHeight="150" />
</sdk2:AccordionItem>
<sdk2:AccordionItem Header="Item 3" Background="LightBlue">
<ContentControl Content="Hello World Row 3" />
</sdk2:AccordionItem>
</sdk2:Accordion>