Проблема установки MaxHeight для набора инструментов Silverlight AccordionItem - PullRequest
1 голос
/ 26 апреля 2011

Я пытаюсь настроить Аккордеон, в котором есть три предмета.Первые два расширяются до заданных высот, а третий расширяется, чтобы заполнить все оставшееся пространство;Я думал, что это будет легко.

Вот глупая версия того, что я пытаюсь сделать.Сам аккордеон имеет красный фон, а каждый из предметов имеет свой цвет.Первые два элемента расширяются соответствующим образом до их размера, но если открыт элемент 1 или 2, элемент 3 больше не расширяется, чтобы заполнить все оставшееся пространство, но либо размеры слишком малы, оставляя большой кусок красного или слишком большой, отбрасываяв нижней части экрана, затмевая крошечный кусочек красного, который все еще должен присутствовать.

Это ошибка?

Я пытался обойти это, используя два аккордеона, один с двумя предметамис максимальными высотами и вторым аккордеоном, который расширится, чтобы заполнить всю оставшуюся высоту, но мне никогда не удавалось получить правильное расположение, поскольку я предполагаю, что это очевидно для вас, специалистов Silverlight.

Есть ли способЯ могу сделать это?

Вот полный код - также обратите внимание, что я попытался использовать атрибут Высота вместо 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 Ответ

1 голос
/ 26 апреля 2011

Попробуйте установить 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...