设置Silverlight Toolkit AccordionItem的MaxHeight时出现问题

设置Silverlight Toolkit AccordionItem的MaxHeight时出现问题,silverlight,silverlight-4.0,silverlight-toolkit,Silverlight,Silverlight 4.0,Silverlight Toolkit,我正在试着制作一个有三个项目的手风琴。前两个扩展到预定义的高度,第三个扩展到填充所有剩余空间;我想这很容易 这是我试图做的一个虚拟版本。手风琴本身有一个红色的背景,每个项目都有自己的颜色。前两个项目适当地扩展到其大小,但如果项目1或2打开,项目3将不再扩展以填充所有剩余空间,而是尺寸太小,留下一大块红色,或者太大,从屏幕底部射出,遮住了应该仍然存在的红色小条 这是虫子吗 我试着用两个手风琴来解决这个问题,一个手风琴有两个最大高度的项目,另一个手风琴可以扩展到所有剩余的高度,但我始终无法获得正确的

我正在试着制作一个有三个项目的手风琴。前两个扩展到预定义的高度,第三个扩展到填充所有剩余空间;我想这很容易

这是我试图做的一个虚拟版本。手风琴本身有一个红色的背景,每个项目都有自己的颜色。前两个项目适当地扩展到其大小,但如果项目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>

你好,世界第一排
你好,世界第二排
你好,世界第三排

尝试设置内容的最大高度。现在,您将内容设置为
字符串
尝试将其设置为
内容控件

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

尝试设置内容的最大高度。现在,您将内容设置为
字符串
尝试将其设置为
内容控件

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


这看起来很有希望,但没有。在这种情况下,它只是忽略了最大高度,并扩展了每个手风琴项目,以填充所有大于150的可用空间。我尝试过使用比字符串更健壮的内容,同样的事情也发生了。这只是我能举的最简单的例子来说明这个问题对不起,这是因为你的垂直对齐设置为拉伸,你可能需要自己编写衍生的AccordionItem,然后自己进行测量/安排。哦,是的-也许我会改变我的UI,这样我就不想在前两个项目上有固定的高度:)谢谢,假设没有人参与(简单的)解决方法,我会接受这个HA-你在纽约。几周后,我要回城里去度一个急需的假期;我来自北部。不管怎样,够了。再次感谢这看起来很有希望,但是没有。在这种情况下,它只是忽略了最大高度,并扩展了每个手风琴项目,以填充所有大于150的可用空间。我尝试过使用比字符串更健壮的内容,同样的事情也发生了。这只是我能举的最简单的例子来说明这个问题对不起,这是因为你的垂直对齐设置为拉伸,你可能需要自己编写衍生的AccordionItem,然后自己进行测量/安排。哦,是的-也许我会改变我的UI,这样我就不想在前两个项目上有固定的高度:)谢谢,假设没有人参与(简单的)解决方法,我会接受这个HA-你在纽约。几周后,我要回城里去度一个急需的假期;我来自北部。不管怎样,够了。再次感谢