为Silverlight Toolkit AccordionItem设置MaxHeight问题

时间:2011-04-26 13:45:02

标签: silverlight silverlight-4.0 silverlight-toolkit

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

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

1 个答案:

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